2018-6-12-Python全栈开发day17-其他内置函数

1.zip函数

  将两个可迭代对象,一一对应。

  

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,所对应的值

猜你喜欢

转载自www.cnblogs.com/hai125698/p/9175382.html