Python 推导式

本文介绍了Python中四种常见的推导式:列表推导式、字典推导式、集合推导式和元组推导式,通过实例展示了如何使用它们进行数据处理。例如,利用列表推导式过滤字符串列表、计算可被3整除的整数,使用字典推导式创建键值对,集合推导式求平方数,以及元组推导式生成数字元组。这些推导式在Python编程中能提高代码效率和可读性。

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


列表推导式

基本格式:
[表达式 for 变量 in 列表]
[表达式 for 变量 in 列表 if 条件]

实例1:过滤长度小于等于5的字符串列表,并将剩下的转换成大写字母

names = ['zhangsan','lisi','wangmazi','wangzu','zhaoliu']
new_names = [name.upper()for name in names if len(name)>5]
print(new_names)

>>>输出结果为:['ZHANGSAN', 'WANGMAZI', 'WANGZU', 'ZHAOLIU']

实例2:计算10以内可以被3整除的整数:

multiples = [i for i in range(10) if i % 3 ==0]
print(multiples)

>>>输出结果为:[0, 3, 6, 9]

实例3:如果首字母是 p 则首字母大写,否则全部大写

list1 = ['python','java','c++']
list2 = [world.title() if world.startswith("p") else world.upper() for world in list1]
print(list2)

>>>输出结果为:['Python', 'JAVA', 'C++']

字典推导式

基本格式:
{ key_expr: value_expr for value in collection }
{ key_expr: value_expr for value in collection if condition }

实例1:使用字符串长度为值,组成键值对

shop = ['taobao','jingdong','pinduoduo']
newshop = {key:len(key) for key in shop}
print(newshop)

>>>输出结果为:{'taobao': 6, 'jingdong': 8, 'pinduoduo': 9}

实例2:使用字符串的长度为键,组成键值对

shop = ['taobao','jingdong','pinduoduo']
newshop1 = {len(value):value for value in shop}
print(newshop1)

>>>输出结果为:{6: 'taobao', 8: 'jingdong', 9: 'pinduoduo'}

集合推导式

基本格式:
{ expression for item in Sequence }
{ expression for item in Sequence if conditional }

实例1:输出列表的平方数

arr = [1,2,3]
new_arr = {num**2 for num in arr}
print(new_arr)

>>>输出结果为:{1, 4, 9}

实例2:判断不是abc的字母并输出

str = "fancy"
new_str = {x for x in str if x not in 'abc'}
print(new_str)

>>>输出结果为:{'y', 'n', 'f'}

这里集合是无序的,所以输出的结果也是乱序的


元组推导式

写到这基本的格式是一样的,只是 元组用的是 () ,列表用的是 []
实例1:生成一个包含0~9的元组:

arr = (x for x in range(10))
print(tuple(arr))

>>>输出结果为:(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值