1. eval(str)
eval函数能够让字符串当作代码执行,并执行返回的结果。
str1 = '1+1'
str2 = '2*2'
str3 = '2>1'
print(eval(str1),eval(str2),eval(str3)) # 2 4 True
2.map(func, iterable)
map函数会将迭代对象的每一个值取出来处理,映射为新的迭代对象,返回的是迭代对象,一般会转成列表或元组等。
ls = [1, 2, 3, 4]
tem_map = map(lambda item: item + 10, ls)
# 第一个参数是处理函数,第二参数可迭代对象
print(tem_map) # <map object at 0x000002323D662920>
print(list(tem_map)) # [11, 12, 13, 14]
3.filter(func, iterable)
filter函数可以过滤出符合条件的可迭代对象,用法和map类似。
ls = [1, 2, 3, 4]
tem_filter = filter(lambda item: item > 2, ls)
print(tem_filter) # <filter object at 0x00000272EDBB2BF0>
print(list(tem_filter)) # [3, 4]
4. reduce(func(param1, param2), sequence, initial)
reduce用于对序列进行累积操作,func中应传入两个参数,第一个参数param1是累计操作的结果,第二个参数param2是序列sequence中的元素,initial是累计操作结果param1的初始值
from functools import reduce
ls = [1, 2, 3, 4]
result1 = reduce(lambda res, item : res + item, ls)
print(result) # 10
result2 = reduce(lambda res, item : res * item, ls)
print(result) # 24
#给reduce加上初始值
result3 = reduce(lambda res, item : res * item, ls, 10)
print(result) # 240
5.sorted(param1,param2)
sorted函数可以用于排序可迭代对象中的元素,第一个参数是可迭代对象,第二个参数reverse默认为False升序,可以省略不写,如果为True则是降序,sorted函数不会改变原序列,而是返回一个排序过的新序列。
ls = [11, 2, 124]
print(sorted(ls, reverse=True)) # [124, 11, 2]
print(ls) # [11, 2, 124]
# sorted高级用法:
dic ={[n]}
print(sorted((11, 2, 124), key=lambda item: item)) # [2, 11, 124]
6.max()、min()、sum()
# 求最大值max
print(max(11, 2, 124, 1)) # 124
# 求最小值min
print(min((11, 2, 124))) # 2
# 求和sum
print(sum((11, 2, 124))) # 137
# max(),min(),sum()都只适用与纯数字序列,否则会报错TypeError