filter(func, iterable),根据func返回值为True或False讲列表中的符合
要求的元素筛选出来
例1:
def is_even(num):
return num % 2 == 0
a = filter(is_even, [1, 2, 3, 4, 5, 6, 7, 8])
print(list(a))
# lambda表达式写法
f = list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6, 7, 8]))
print(f)
例2:
# 把一个序列中的空字符串去掉
#python空字符串为False, 非空字符串为True
def del_empty(s):
print(s and s.strip())
return s and s.strip()
s = list(filter(del_empty, ['abc', 'a ', None]))
print(s)
# lambda表达式简便写法
print(list(filter(lambda x: x and x.strip(),
['a', ' ', 'a ', None])))
sorted()默认升序排序
例1:
s = sorted([36, -2, -12, 24, 2, 1, 33])
print(s)
例2:
#按绝对值排序----key:排序依据
s = sorted([36, -2, -12, 24, 2, 1, 33], key=abs)
print(s)
例3:
#按绝对值反向排序,两个参数key:排序依据,reverse为True时,为降序
s = sorted([36, -2, -12, 24, 2, 1, 33], key=abs, reverse=True)
print(s)
例4:
#按照分数从低到高排序,自定义排序
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
s = sorted(L, key=(lambda x: x[1]))
print(s)