将两个可迭代对象,一一对应。
s1='abc' s2=[1,2,3] a=list(zip(s1,s2)) print(a) -- [('a', 1), ('b', 2), ('c', 3)]
1.1 将字典一一对应,并且拿出来
s1={ 'alex':180, 'xuz':99, 'zh':46 } a=list(zip(s1.values(),s1.keys())) print(a) --- [(180, 'alex'), (99, 'xuz'), (46, 'zh')]
2.max函数
对同一数据类型进行比较,并且取出最大值
2.1 直接比较数值
s1=[1,2,3,5,4,4444] a=max(s1) print(a) -- 4444
2.2 字符串进行比较
逐个进行比较,一有大小,就分出来
s1=['s1','s2222','s8'] a=max(s1) print(a) - S8
2.3 字典进行比较
s1={ 'alex':100, 'xuzheng':90, 'zhaowei':120 } #对s1这个列表,以列表中的age为准,去其中的最大值 a=max(s1.values()) print(a) -- 120
2.3 需求更新,找到最大值,并且返回最大值和对应的keys
s1={ 'alex':100, 'xuzheng':90, 'zhaowei':120 } #对s1这个列表,以列表中的age为准,去其中的最大值 b=list(max(zip(s1.values(),s1.keys()))) a=max(s1.values()) print(a) print(b) --- 120 [120, 'zhaowei']
在这个代码里面,将字典的value和key进行配对,形成一个元组,然后对元组进行比较,找到最大值,再输出为列表
2.4 对含有多个key的字典进行比较
s1=[ {'name':'alex','age':18}, {'name':'yehaibin','age':270}, {'name':'xuzheng','age':180}, {'name':'zhaowei','age':158} ] a=max(s1,key=lambda n:n['age']) print(a) ==== {'name': 'yehaibin', 'age': 270}
a,就是对s1中,所有的元素进行for循环出来,循环之后,是一个个字典,然后通过key,进行函数定义,key就是关键字,以这个关键字进行比较,然后进行输出
因为此时,循环出来的还只是一个字典,要选中age,要使用函数 lamabda n:n[‘age’],这样关键字就变成了age,以字典中age对用的value来进行比较。
注意,要比较的对象,是一个可迭代对象的for循环。
对for循环出来的元素进行比较,
如果元素还是过于复杂,可以利用key,来指定对某个关键进行比较,lambda中的n,就是for循环传入的字典,然后字典n[‘age’],就是列表中字典,键为age,所对应的值