内置函数(二)(compile函数)(map()函数)(filter()函数)(zip()函数)

本文详细介绍了Python内置的四个重要函数:compile用于将字符串编译为字节代码;map函数对迭代对象中的每个元素执行特定操作;filter函数根据指定条件过滤序列;zip函数将多个序列元素打包成元组。通过实例展示了它们的用法和特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

内置函数一的链接

优快云icon-default.png?t=M276https://mp.youkuaiyun.com/mp_blog/creation/editor/123324094

一.compile函数

1.用法:用于将一个字符串编译为字节代码,语法格式如下:

complie(source,filename,mode,flags=0,dont_inherit=False,optimize=-1)
  • source为代码语句的字符串
  • filename为代码文件的名称(如果不是从文件读取代码,则传递一些可辨认的值)
  • mode为指定编译代码的种类(其值可以是“exec”,“eval”,"single")
  • 其余参数使用默认值

例子:

num = 2
str = input("请输入关于num的计算公式:")

res = compile(str,"","eval")
print(eval(res))

简单来说就是将字符串装换为可以执行的代码命令


二.map()函数

映射函数 语法map(function,iterable) 可以对迭代对象中的每一个元素进行映射,分别去执行function

1.函数说明:对列表和其它序列中的每个元素进行同一个操作并将其结果集合起来

list1 = [1, 2, 3, 4]
func = lambda x: x + 10
list2 = list(map(func,list1))
print(list2)

 可以这样说对于可迭代对象操作的函数

2.map函数还可以接收两个序列

list_1 = list(map(lambda x,y:x+y,range(1,5),range(2,6)))
print(list_1)

结果:

[3, 5, 7, 9]

三.filter()函数

对指定序列进行过滤操作,函数语法格式:

  • filter(function, sequence)
  • function 为函数名,引用的函数只能接收一个参数,并且返回值是布尔值
  • sequence 为一个序列,filter()函数返回值为迭代器对象

例子:

mess = ["回头科科", "chinazxjy.cn", "www."]
func = lambda x: x.isalnum()    #检测字符串是否由字母和数字组成   这里也根据汉字的Ascii码
list = list(filter(func,mess))
print(list)

结果:

['回头科科']

注意:对列表list中的每个元素调用func函数,并返回使得func函数返回值为True的元素组成的可迭代对象。


四,zip()函数

zip()函数用于将一系列可迭代的对象作为参数,将对象中应该的元素打包成一个个元组,然后返回由这些元组组成的迭代对象。

用法1:

list1, list2 = [1, 2, 3], ["回头科科", "人工智能", "欢迎大家"]
list3 = list(zip(list1, list2))
print(list3)

结果:

[(1, '回头科科'), (2, '人工智能'), (3, '欢迎大家')]

zip函数将列表list1的第一个元素与列表list2中的1个元素组成一个元组。以此类推。最终组成一个元组组成的迭代对象。 


用法2:

zip()参数可以接受任何类型的序列,同时也可以有两个以上的参数。但传入参数的长度不同时,zip()函数以最短序列长度为准进行截取获得元组。

list1, list2 ,list3= [1, 2, 3], ["回头科科", "人工智能", "欢迎大家"],[256,4294967296]
list4 = list(zip(list1, list2,list3))
print(list4)

结果:

[(1, '回头科科', 256), (2, '人工智能', 4294967296)]

这里注意:zip()函数以最短序列长度为准进行截取获得元组。


用法3:

zip()函数使用 * 运算符

list1, list2 ,list3= [1, 2, 3], ["回头科科", "人工智能", "欢迎大家"],[256,4294967296]
list4 = zip(list1, list2,list3)
list5 = zip(*list4)
print(list(list5))

结果:

[(1, 2), ('回头科科', '人工智能'), (256, 4294967296)]

使用 * 运算符相当于执行相反的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值