Python内置函数
#1、语法 # eval(str,[,globasl[,locals]]) # exec(str,[,globasl[,locals]])#2、区别 #示例一: s='1+2+3' print(eval(s)) #eval用来执行表达式,并返回表达式执行的结果 print(exec(s)) #exec用来执行语句,不会返回任何值 ''' 6 None '''#示例二: print(eval('1+2+x',{'x':3},{'x':30})) #返回33 print(exec('1+2+x',{'x':3},{'x':30})) #返回None# print(eval('for i in range(10):print(i)')) #语法错误,eval不能执行表达式 print(exec('for i in range(10):print(i)'))
#map:映射
1.将列表中的的元素,平方,再生成新的列表
1 l = [1,2,3,7] 2 m = map(lambda item:item**2,l) 3 print(m) 4 5 print(list(m)) #变成列表输出
2.为列表中的每个元素,添加新内容,再生成新的列表
1 name_l = ['alex','tom','jack','F1'] 2 3 new = map(lambda name:name+'DB', name_l) 4 5 print(list(new)) 6 7 #输出结果 8 ['alexDB', 'tomDB', 'jackDB', 'F1DB']
#filter :过滤
1 name_l = [ 2 {'name':'egon','age':18}, 3 {'name':'tom','age':1000}, 4 {'name':'jack','age':9000}, 5 ] 6 7 ##利于理解 8 n = {'name':'egon','age':18} 9 print(n['age'] > 100) #此步 是个判断,结果是 False 10 n = {'name':'tom','age':1000} 11 print(n['age'] > 100) #此步 结果是个 True 12 ## 13 14 f = filter(lambda n:n['age'] > 100,name_l) #左边函数若是True,则 过滤出来 15 16 for i in f: 17 print(i) 18 19 20 21 ##输出结果 22 {'name': 'tom', 'age': 1000} 23 {'name': 'jack', 'age': 9000}
#slice:切片
1 l = [1,2,3,4,5,6,7,8,9] 2 3 # 第一种方法 4 print(l[1:7:2]) 5 #输出结果 6 [2, 4, 6] 7 8 9 10 #用 slice方法 11 s = slice(1,7,2) 12 print(l[s])
#reduce 合并结果
1 from functools import reduce 2 li = list(range(100)) 3 print(li) 4 print(reduce(lambda x,y:x+y,li))
#enumerate 枚举
li = ['a','b','c']for i in enumerate(li,1):print(i)#输出结果 (1, 'a') (2, 'b') (3, 'c')
#zip 组合
albums = ('Poe', 'Gaudi', 'Freud', 'Tom') years = (1976, 1987, 1990, 2003)for i in zip(albums, years):print(i)#结果: ('Poe', 1976) ('Gaudi', 1987) ('Freud', 1990) ('Tom', 2003)