Python9-内置函数2-day16

#zip方法

l = [1,2,3]
l2 = ['a','b','c']
l3 = ('*','**',[1,2])
l4 = {'k1':1,'k2':2}
for i in zip(l,l2,l3,l4):
    print(i)

#filter

def is_odd(x):
    return x %2 == 1
ret = filter(is_odd,[1,4,5,7,8,12])
for i in ret:
    print(i)


1
5
7

#过滤字符串

def is_str(s):
    return type(s)==str
ret = filter(is_str,[1,4,5,'hello',7,8,'world',12])
for i in ret:
    print(i)



hello
world

#删除None和空字符串

def is_str(s):
    if type(s) != int:
        return s and str(s).strip()

ret = filter(is_str,[1,4,5,'hello','   ',[],None,7,8,'world',12])

for i in ret:
    print(i)

 利用filter过滤出1-100中平方根的整数的数,

from math import sqrt
def func(num):
res = sqrt(num)
return res%1 == 0
ret = filter(func,range(1,101))
for i in ret:
print(i)
#map方法   执行一边abs
ret = map(abs,[1,-2,-5,3])
print(ret)
for i in ret:
    print(i)
1
2
5
3
#总结
# filter 执行了filter之后的结果的集合 <=执行之前的个数
# filter只管筛选,不会改变原来的值
# map 执行前后元素个数不变
# 值可能发生改变

# sorted()

l = [1,-4,6,5,-10]
print(sorted(l))   #产生新的列表,不改变源列表,占内存
print(l)
print(sorted(l,reverse=True))

[-10, -4, 1, 5, 6]
[1, -4, 6, 5, -10]
[6, 5, 1, -4, -10]


列表长度从长到短排序
l = ['    ',[1,2],'hello world']
new_l = sorted(l,key=len,reverse=True)
print(new_l)


['hello world', '    ', [1, 2]]

#匿名函数

 

add = lambda x,y:x+y
print(add(1,2))

3

 取出字典中的最大value对应的key

dic = {'k1':2,'k5':100,'k3':4}
print(max(dic,key=lambda k:dic[k]))

k5
面试题# (('a'),('b')),(('c'),('d'))---->[{'a': 'c'}, {'b': 'd'}]

ret = zip((('a'),('b')),(('c'),('d')))
# def func(tup):
#     return {tup[0]:tup[1]}
res = map(lambda tup:{tup[0]:tup[1]},ret)
print(list(res))

or

res = list(map(lambda tup:{tup[0]:tup[1]},zip((('a'),('b')),(('c'),('d')))))
print(res)

or
print(list(map(lambda tup:{tup[0]:tup[1]},zip((('a'),('b')),(('c'),('d'))))))
[{'a': 'c'}, {'b': 'd'}]


原文地址:https://www.cnblogs.com/zhangtengccie/p/10340562.html