上一篇:一、python基础知识
文章目录
- 十二、高级内置函数 TODO
- 1. eval():能够识别python中字符串里的python表达式,并进行计算
- 2. exec()识别str字符串的时候,识别到fun1()的函数,
- 3. filter
- 4. map
- 5. zip
- 6. isinstance
str1 = "abc"
str2 = "1+2"
str3 = 1
str4 = 2
print(eval(str3 + str4)) # TypeError: eval() arg 1 must be a string, bytes or code object
print(eval("str3+str4")) # 3
print(eval("abc")) # NameError: name 'abc' is not defined
print(eval("1+2")) # 3
print(eval(str1)) # NameError: name 'abc' is not defined
print(eval(str2)) # 3
2. exec()识别str字符串的时候,识别到fun1()的函数,
识别相对复杂的表达式3. filter
filter(函数名,序列)
第一步:写一个过滤条件
def fun2(num):
return num>3
第二步:使用filter()过滤
list1=[1,2,3,4,5,6,7,8,9]
res=filter(fun2,list1)
print(list(res))
转列表,因为开始元素放在一个迭代器中
def fun3(num):
return num%2==0
tup1=[1,2,3,4,5,6,7,8,9,10]
res=filter(fun3,tup1)
print(tuple(res))#(2, 4, 6, 8, 10)
4. map
map(函数名,序列)
把后面序列中的每一个元素传给前面的函数,把结果放在一个迭代器中
def fun3(num):
return num%2==0
tup1=[1,2,3,4,5,6,7,8,9,10]
res1=map(fun3,tup1)
print(list(res1))#[False, True, False, True, False, True, False, True, False, True]
5. zip
聚合打包
以序列中元素最少的那个为匹配规则
list1=['name','age','sex','class']
list2=['xiaohua',18,'女']
res=zip(list1,list2)#把list1和list2组合成一个迭代器并返回
print(dict(res))#把返回的迭代器强制转换成字典 {'name': 'xiaohua', 'age': 18, 'sex': '女'}
6. isinstance
判断数据类型,返回bool类型
结合对象看
num=100
print(isinstance(num,int))#True
str2='abc'
print(isinstance(str2,int))#False
print(isinstance(str2,str))#True



