控制流程—推导式

本文介绍了Python编程中三种重要的推导式:列表推导式用于简洁地创建列表,例如通过for循环和if条件;字典推导式则用于快速构造字典,基于键或键值对;集合推导式与列表类似,但生成的是无序且不重复的元素集合。这些推导式提高了代码的可读性和效率。
摘要由CSDN通过智能技术生成

列表推导式,是指循环创建列表
列表推导式就相当于for循环创建列表的简化版

语法:[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]  

list1 = [a for a in range(5)]
print(list1) # [0, 1, 2, 3, 4]

# in后面也可以跟其它迭代对象
list2 = [2*a for a in "python"]
print(list2) # ['pp', 'yy', 'tt', 'hh', 'oo', 'nn']

# 带if语句的列表推导式
list3 = [a for a in range(5) if a%2 != 0]
print(list3) # [1, 3]

# 多个for循环
list4 = [(a,b) for a in range(4) for b in "python"]
print(list4) # [(0, 'H'), (0, 'M'), (1, 'H'), (1, 'M')]

字典推导式

# 根据键构造值
lsit1 = ["python","java","go"]
dict1 = {key:len(key) for key in list1}
print(dict1) # {'python': 6, 'java': 4, 'go': 2}

# 遍历一个有键值关系的可迭代对象
list2 = [("天上","飞机"),("地上","汽车"),("水里","船")]
dict2 = {key:value for key,value in list2}
print(dict2) # {'天上': '飞机', '地上': '汽车', '水里': '船'}

集合推导式
集合推导式跟列表推导式非常相似,唯一区别在于用{ }代替[ ]

str1 = ["python","go","java"]
set1 = {len(s) for s in str1}
print(set1) # {2, 4, 6}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值