Python之内置函数

                                                          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)'))
eval与exec

#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)
View Code
原文地址:https://www.cnblogs.com/zhaochangbo/p/6703994.html