zip、max/min 函数的使用

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']        
posted @ 2019-04-23 22:52  xfxlesson  阅读(330)  评论(0编辑  收藏  举报