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..文件处理方式的更多相关文章

  1. Python之路Python内置函数、zip()、max()、min()

    Python之路Python内置函数.zip().max().min() 一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算, ...

  2. Python之路(第八篇)Python内置函数、zip()、max()、min()

    一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...

  3. 内置函数-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类型的, ...

  4. 集合函数AVG,SUM,MAX,MIN

    需要计算这些值的平均值.使用函数AVG(),你可以返回一个字段中所有值的平均值. 假如你对你的站点进行一次较为复杂的民意调查.访问者可以在1到10之间投票,表示他们喜欢你站点的程度.你把投票结果保存在 ...

  5. max,min,Zip函数(十一)

    zip函数,拉链,传两个有序的参数,将他们一一对应为元祖形式 max,min比较默认比较一个元素,处理的是可迭代对象,相当于for循环取出每个元素进行比较,注意:不同类型之间不可比较 #!/usr/b ...

  6. Oracle bug 使用max或min函数into到一个char类型报字符缓冲区太小的错误

    这个BUG出现会报错如下: selectto_char(max(RENEWAL_DATE)) intoM_YEAR_MONTH fromt_renewal_schedule; ORA-06502: P ...

  7. 带有key参数的函数filter,map,max,min

    内置函数———filter def is_not_empty(s): return s and len(s.strip()) > 0 filter(is_not_empty, ['test', ...

  8. 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 ...

  9. 【MySQL】汇总数据 - avg()、count()、max()、min()、sum()函数的使用

    第12章 汇总数据 文章目录 第12章 汇总数据 1.聚集函数 1.1.AVG()函数 avg() 1.2.COUNT()函数 count() 1.3. MAX()函数 max() 1.4.MIN() ...

随机推荐

  1. 移动端滑动轮播,原生JS

    因为公司需要自定义两个轮播图联动,又不想引入第三方库,所以自己研究了下. 下面只是一个简单的轮播图,由此再拓展一下即可实现两个轮播图联动. <!DOCTYPE html> <html ...

  2. Django框架(二)

    四.Django简介 1.MVC与MTV模型 MVC Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方 ...

  3. SSH登录异常(someone is doing something nasty)

    在平时工作中,有时候需要SSH登陆到别的Linux主机上去,但有时候SSH登陆会被禁止,并弹出如下类似提示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  4. slick插件一些配置

  5. ajax 请求问题

    1.ajax 请求锁定页面加载 function agree(id,index){ var yj=$("#taskTableId tr[data-index='"+index+&q ...

  6. Angular2 NgModule 模块详解

    原文  https://segmentfault.com/a/1190000007187393 我们今天要学习的是Angular2的模块系统,一般情况下我们使用一个根模块去启动我们的应用,然后使用许多 ...

  7. MySQL5.7 GTID学习笔记

    GTID(global transaction identifier)是对于一个已提交事务的全局唯一编号,前一部分是server_uuid,后面一部分是执行事务的唯一标志,通常是自增的. 下表整理了G ...

  8. guava-retrying 源码解析(阻塞策略详解)

    这是一种策略,用于决定重试者应如何在重试尝试之间进行阻止.通常这只是一个thread.sleep(),但是如果需要的话,实现可能更复杂. 一.阻塞策略相关的类或接口 1.阻塞策略接口:BlockStr ...

  9. case语法2

    case流程控制语句在linux中有其独到的一面,使得在编程过程中能够在脚本编写的过程中具备多个选项功能,使其功能多样化,其具备简单,快速的特点. 一.case流程语句结构图 根据流程图可以知道,在所 ...

  10. getfacl语法2

    一.setfacl——设定文件访问控制列表语法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...  -m, --modify=acl 更改文件的访问控制 ...