列表推导式、元组推导式、字典推导式、集合推导式
1、列表推导式、元组推导式、字典推导式、集合推导式
列表推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。
1.1 列表推导式
列表推导式的语法格式如下:
表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ] # [if 条件表达式] 不是必须的,可以使用,也可以省略。
a_range = range(10)
# 对a_range执行for表达式
a_list = [x * x for x in a_range]
# a_list集合包含10个元素
print(a_list)
输出结果:
[0 , 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64, 81]
1.2 元组推导式
(表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] )
a = (x for x in range(1,10))
print(tuple(a))
运行结果为:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
1.3 字典推导式
{表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]}
listdemo = ['Jack','Tom']
#将列表中各字符串值为键,各字符串的长度为值,组成键值对
newdict = {key:len(key) for key in listdemo}
print(newdict)
输出结果:
{'Jack': 4, 'Tom': 3}
1.4 集合推导式
{ 表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] }
集合推导式和字典推导式的格式完全相同,那么给定一个类似的推导式,如何判断是哪种推导式呢?
最简单直接的方式,就是根据表达式进行判断,如果表达式以键值对(key:value
)的形式,则证明此推导式是字典推导式;反之,则是集合推导式。
setnew = {i**2 for i in range(3)}
print(setnew)
输出结果:
{0, 1, 4}