Python之内置函数

# eval与exec
#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.将列表中的的元素,平方,再生成新的列表
l = [1, 2, 3, 7] m = map(lambda item: item ** 2, l) print(m) print(list(m)) # 变成列表输出 ''' <map object at 0x00000000024FF978> [1, 4, 9, 49] '''
2.为列表中的每个元素,添加新内容,再生成新的列表
name_lis = ['tom', 'jerry', 'jack'] new = map(lambda name: name + 'NB', name_lis) print(list(new)) # 输出结果 ['tomNB', 'jerryNB', 'jackNB']
#filter:过滤
name_l = [ {'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 1000}, {'name': 'Rose', 'age': 9000}, ] """ #------------利于理解 n = {'name': 'egon', 'age': 18} print(n['age'] > 100) # 此步 是个判断,结果是 False n = {'name': 'tom', 'age': 1000} print(n['age'] > 100) # 此步 结果是个 True """ f = filter(lambda n: n['age'] > 100, name_l) # 左边函数若是True,则 过滤出来 for i in f: print(i) # 输出结果 {'name': 'Jerry', 'age': 1000} {'name': 'Rose', 'age': 9000}
#slice: 切片
l = [1, 2, 3, 4, 5, 6, 7, 8, 9] # 第一种方法 print(l[1:7:2]) # 用slice方法 s = slice(1, 7, 2) print(l[s]) #结果 [2, 4, 6]
#reduce:合并结果
from functools import reduce li = list(range(100)) print(li) 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 = ('Jerry', 'Rose', 'Jack', 'Tom') years = (1960, 1987, 1990, 2003) for i in zip(albums, years): print(i) #结果: ('Jerry', 1960) ('Rose', 1987) ('Jack', 1990) ('Tom', 2003)

浙公网安备 33010602011771号