D17-02 zip方法 max min 高级用法 part1&2
zip(('a','b','c'),(1,2,3))
print(list(zip(('a','b','c'),(1,2,3)))) #拉链一样一一对应 如果不是一一对应多出的舍弃,不报错。
输出结果
[('a', 1), ('b', 2), ('c', 3)]
p={'name':'alex','age':18}
print(list(zip(p.keys(),p.values())))
输出结果
[('age', 18), ('name', 'alex')]
MAX函数 print(listmax(zip(xxx.key,xxx.value)))) MIN用法一样
不同类类型间不能进行比较
1,max函数处理的是可迭代对象,相当于一个for循环去除每个元素进行比较,
不同类型之间不能进行比较,
2,每个原色间进行比较,是从每个元素的第一个位置依次比较,如果这一个位置分出大小,
后面的都不要比较了,直接得出这两个原色的大小。
age_dic={'age1':18,'age4':20,'age3':100,'age2':30}
print(max(age_dic.values()))
#默认比较字典的key,一个字符一个的比较
zip(age_dic.values(),age_dic.keys())
for i in zip(age_dic.values(),age_dic.keys()):
print(i)
print(list(max(zip(age_dic.values(),age_dic.keys()))))
输出结果
100 #打印最大的value,但不知道key是谁
(30, 'age2') #用for循环查看zip中的元素
(18, 'age1')
(20, 'age4')
(100, 'age3')
[100, 'age3'] #打印zip中list元素的最大的值,包含键和值
l = [
(5,'e'),
(1,'b'),
(3,'a'),
(4,'d')
]
print(list(max(l)))
输出结果
[5, 'e']
dic = {'age1':18,'age2':10}
print(max(dic)) #比较的是key
print(max(dic.values())) #比较的是key,不知道对应的key
print(list(max(zip(dic.values(),dic.keys()))))
print(max(zip(dic.values(),dic.keys()))) #结合zip使用
输出结果
age2
18
[18, 'age1'] #加了list
(18, 'age1')
people=[
{'name':'alex','age':1000},
{'name':'wupeiqi','age':10000},
{'name':'yuanhao','age':9000},
{'name':'lhf','age':18},
]
max(people,key=lambda dic:dic['age']) #max可以指定方法
print(max(people,key=lambda dic:dic['age'])) #相当于把people进行for循环,给lambda处理返回一个值
ret=[]
for i in people:
ret.append(i['age'])
print(ret)
输出结果
{'name': 'wupeiqi', 'age': 10000}
[1000, 10000, 9000, 18]

浙公网安备 33010602011771号