zip():
使用目的:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
zip(iter1 [,iter2 [...]])
可用操作:
1.将序列一一对应的列表组成元祖
print(list(zip(('a','n','c','d'),(1,2,3)))) >>> [('a', 1), ('n', 2), ('c', 3)]
p = {'name':'alex','age':'18','gender':'none'} zip(p.key(),p,value()) print(list(zip(p.keys(),p.values()))) >>> [('name', 'alex'), ('age', '18'), ('gender', 'none')]
2.将字符串一一对应组成元祖
p = {'name':'alex','age':'18','gender':'none'} [('h', '1'), ('e', '2'), ('l', '3'), ('l', '4'), ('o', '5')]
max/min():
使用目的:对字符串,列表,字典等进行大小比较。
特性: 1.处理的是可迭代对象,相当于一个for循环取出每个元素比较。
2.每个元素比较,从第一个位置依次比较,当分出大小,则后面不需要比较。
3.实质是遍历逐位比较ascall码大小。
可用操作:
1.找出字典中键、值最值
age_dic = {'age1':18,'age4':20,'age3':100,'age2':30} print(max(age_dic.values())) print(max(age_dic)) #默认找键值最值 >>> 100 #字符串逐位字符比较,整数型则全体比较 age
2.字符串的比较,实质是逐字符ascall码的比较,其中数字与字符串不能比较
l = ['a10','b11','c10'] print(max(l)) >>> c10
l = ['a10','b11','c10',100] print(max(l)) >>> 报错
3.利用key属性找出一组数中绝对值最大的数,就可以配合lamda先进行处理,再找出最大值
a = [1,4,8,5] tmp = max(a, key=lambda x: abs(x)) #for循环a,然后依次赋值于key print(tmp) >>> 8 people=[{'name' : 'a','age' : 10}, {'name' : 'b','age' : 100}, ] print('取出大的值对应的字典元素',max(people,key=lambda dic:dic['age'])) >>> 取出大的值对应的字典元素 {'name': 'b', 'age': 100}
zip、max/min的结合使用
找出字典最大的值,并输出对应的名称
age_dic = {'fsd_age1':18,'asd_age4':20,'dsa_age3':100,'d_age2':30} zip(age_dic.values(),age_dic.keys()) for item in zip(age_dic.values(),age_dic.keys()) print(item) print(list(max(zip(age_dic.values(),age_dic.keys())))) >>> (18, 'fsd_age1') (20, 'asd_age4') (100,'dsa_age3') (30, 'd_age2') [100, 'dsa_age3']