zip()函数,max()和min(),built-in function,import模块,read(),readlines(),write(),writelines(),with..as..文件处理方式
zip()函数:将可迭代对象作为参数,将对象中的对应元素打包成一个个元组。
#map()普通的输出例子
print(list(zip(('a','n','c'),(1,2,3))))
print(list(zip(('a','n','c'),(1,2,3,4))))
print(list(zip(('a','n','c','d'),(1,2,3)))) p={'name':'alex','age':18,'gender':'none'}
print(list(zip((p.keys,p.values)))) age = {'a':10,'b':3,'c':34,'d':4}
print(max(age.values()))
print(max(age.keys())) #max遍历可迭代对象,首先比较第一个对象,如果无比较大小,再比较第二个大小
l = [
('e',5),
('b',1),
('a',3),
('d',2),
]
print('情况一',max(l))
#不同数据类型之间不能比较
# l1 = ['a10','a11000','a20',100]
# print('情况二',list(max(l1)))
l = {
'e':5,
'b':1,
'a':3,
'd':2
}
print('情况二',list(max(zip(l.values(),l.keys()))))
max,min函数高级用法
# max最终版,min同理
people=[
{'name':'alex','age':1000},
{'name':'wupei','age':10000},
{'name':'yuanhao','age':9000},
{'name':'linhaifeng','age':18},
]
# list2 = []
# for item in people:
# list2.append(item['age'])
# 上面for循环代码等同于如下代码:key=lambda dic:dic['age']
# print(max(list2))
#首先遍历people,把取到的每个字典依次赋值给dic,做逻辑运算取到key字(即dic['age]),最后再比较大小
print(max(people,key=lambda dic:dic['age'])) #people后的key关键字不能变!
读取和关闭文件用法(open()和close())
使用with..as..读取某文件内容并赋值给另一个文件(如果文件不存在,新建一个文件)
结合文件使用复习删除列表中某一元素的三种方法
def test():
msg = 'ddfdfdfdggg'
print(locals())
print(vars())
import yuyukun #先导入外部PY文件(直接导入文件名),后引用(方法1)
yuyukun.module1() module_name = 'yuyukun' #先导入外部PY文件(字符串形式),后引用(方法2)
m = __import__(module_name)
m.module() f = open('奉大荒','r',encoding='utf-8') #计算机中默认编码方式为GBK,没有encoding说明则默认
print(f.readable())
print(f.readlines())
data=f.read()
print(data)
f.close() f = open('gbk1',encoding='GBK') #python寻找系统的编码
print(f.readlines()) f=open('gbk1','w')
f.write('i am superman\n')
f.write('i am dying to regain my sense of confidence\n')
f.writelines(['','',''])
f.write(3) f=open('gbk1','a')
f.write('\n不删除原来数据,把新数据写到文件最后,哦也!!')
f=open('gbk1','r+')
f.read()
f.write('abc') f=open('gbk1','r')
data = f.readlines()
print(data)
f.close() dst_f = open('xxxx','w')
for i in data:
if i.startswith(''):
i=['ietls7777']
dst_f.writelines(i)
dst_f.close()
# with A as B 打开A文件并赋值个B
with open('a.txt','w') as fine:
fine.write('')
print(fine) # with A as B, C as D: 同时打开两个文件,并用\分行,防止代码过长
# 从源文件gbk1中读到数据,copy到新的文件中
with open('a.txt','r',encoding='utf-8') as src_r,\
open('gbk1','w') as dst_w:
data = src_r.readlines() #data在readlines后是一个列表
dst_w.writelines(data)
print(data) #列表形式
with open('gbk1','a',encoding='gbk') as data:
data.writelines('最后一行加数据')
print(data) #复习删除列表中某一行的操作,三种方法
with open('gbk1','r+',encoding='gbk') as add:
endline = add.readlines()
print(endline)
endline.remove('123\n')
print(endline) #利用del[索引数] 函数删除指定索引数的元素
with open('gbk1','r',encoding='gbk') as add:
endline = add.readlines()
print(endline)
del endline[1]
print(endline) #利用pop()方法弹出元素,当()内无索引数时默认弹出最后一个元素;
with open('gbk1','r',encoding='gbk') as add:
endline = add.readlines()
print(endline)
endline.pop(1)
print(endline)
文件操作的练习
# 内置函数作业
# =====================作业一
#用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sb
name=['alex','wupeiqi','yuanhao']
name=['alex','wupeiqi','yuanhao']
print(list(map(lambda x:x+'_sb',name)))
#用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
# >>> l=[{'name':'alex'},{'name':'y'}]
l=[{'name':'alex'},{'name':'y'}]
print(l[1].values())
print(list(map(lambda dic:dic['name']+'_sb',l))) # =====================作业二
# 用filter来处理,得到股票价格大于20的股票名字
shares={
'IBM':36.6,
'Lenovo':23.2,
'oldboy':21.2,
'ocean':10.2,
}
print(list(filter(lambda key:shares[key]>20,shares))) # =====================作业三
#如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格
from functools import reduce
portfolio = [
{'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 16.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65}
]
# 1:map来得出一个包含数字的迭代器,数字指的是:购买每支股票的总价格
res = list(map(lambda dic:round(dic['shares']*dic['price'],2),portfolio))
print(res)
# 2:基于1的结果,用reduce来计算,购买这些股票总共花了多少钱
sum = reduce(lambda x,y:x+y,res,0)
print(sum)
# 3:用filter过滤出,单价大于100的股票有哪些
p = list(filter(lambda dic:dic['price']>100,portfolio))
print(p) #过滤出来整个字典
res1 = map(lambda x:print(x['name'],end=' '),p)
list(res1) 补充内置函数sorted()
l = [3,2,1,5,7] #排序是同类型之间比较大小
print(list(reversed(sorted(l))))
portfolio = [
{'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 16.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65}
]
print(sorted(portfolio,key=lambda t:t['price'])) name_dic={
'alex':200,
'wupeiqi':300,
'yuanhao':900
}
print(sorted(name_dic)) #key中元素进行大小比较
print(sorted(zip(name_dic.values(),name_dic.keys())))
print(sorted(name_dic,key=lambda key:name_dic[key])) #字典中一级元素取value方法,1.xxx[key]; 2.xxx['对应key名字']
zip()函数,max()和min(),built-in function,import模块,read(),readlines(),write(),writelines(),with..as..文件处理方式的更多相关文章
- Python之路Python内置函数、zip()、max()、min()
Python之路Python内置函数.zip().max().min() 一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算, ...
- Python之路(第八篇)Python内置函数、zip()、max()、min()
一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...
- 内置函数-max、min、round、sorted、ord、chr、any、all、dir、eval、exec、map、filter、reduce
http://www.nnzhp.cn/archives/152 1.max,min,round print(max([3,4.563,3,6,2.5])) #取最大值,可循环参数即可,int类型的, ...
- 集合函数AVG,SUM,MAX,MIN
需要计算这些值的平均值.使用函数AVG(),你可以返回一个字段中所有值的平均值. 假如你对你的站点进行一次较为复杂的民意调查.访问者可以在1到10之间投票,表示他们喜欢你站点的程度.你把投票结果保存在 ...
- max,min,Zip函数(十一)
zip函数,拉链,传两个有序的参数,将他们一一对应为元祖形式 max,min比较默认比较一个元素,处理的是可迭代对象,相当于for循环取出每个元素进行比较,注意:不同类型之间不可比较 #!/usr/b ...
- Oracle bug 使用max或min函数into到一个char类型报字符缓冲区太小的错误
这个BUG出现会报错如下: selectto_char(max(RENEWAL_DATE)) intoM_YEAR_MONTH fromt_renewal_schedule; ORA-06502: P ...
- 带有key参数的函数filter,map,max,min
内置函数———filter def is_not_empty(s): return s and len(s.strip()) > 0 filter(is_not_empty, ['test', ...
- day17—max, map, reduce, filter, zip 函数的使用
一.max 函数 l=[3,2,100,999,213,1111,31121,333] print(max(l)) # dic={'k1':10,'k2':100,'k3':30} print(max ...
- 【MySQL】汇总数据 - avg()、count()、max()、min()、sum()函数的使用
第12章 汇总数据 文章目录 第12章 汇总数据 1.聚集函数 1.1.AVG()函数 avg() 1.2.COUNT()函数 count() 1.3. MAX()函数 max() 1.4.MIN() ...
随机推荐
- Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet - 我爱机器学习
http://www.cnblogs.com/52machinelearning/p/5821591.html
- django中邮件、日志的配置
邮件的发送及配置 # 配置邮件 EMAIL_USE_SSL = True EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com EMAIL_PORT ...
- vscode wechat settings.json
// { // "window.zoomLevel": 0, // "editor.fontSize": 16, // "files.associat ...
- test pthread code
#include <iostream> #include <pthread.h> using namespace std; ; void * add(void *); pthr ...
- python if __name__=='__main__'的理解
定义一个模块叫module.py: def main(): print "we are in %s" %__name__ if __name__=='__main__': main ...
- IntelliJ IDEA使用教程(很全)
IntelliJ IDEA使用教程(很全) 这个编辑器我就不再多做介绍了.直接开始新建maven hello world 的Java web项目啦 你电脑上得有jdk1.7,或者1.8,然后就是mav ...
- java面向对象编程(六)--四大特征之继承
本文将介绍继承.方法重载和方法覆盖.其中方法重载和方法覆盖是在讲多态时必须要清楚的一个知识点. 一.继承 1.继承的概念 继承可以解决代码复用,让我们的编程更加靠近人类思维.当多个类存在相同的属性(变 ...
- 虚拟机U盘挂载
虚拟机中U盘挂载 一.连接U盘 虚拟机中 虚拟机→可移动设备→Syntek USB......(U盘的名称)→连接: 二.查看U盘的UUID “lsblk -f”: UUID为 35E6-9 ...
- Javascript Canvas验证码
用Canvas画的验证码,效果图如下 1.验证码的JS代码,保存到一个名称是validatedCode.js的文件内,代码如下: (function(window,document){ functio ...
- Git 简介及简单操作
一.GIT是什么 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本 ...