列表集合字典推导式
推导式
推导式,又称解析式,是Python的一种独有特性,推导式是可以从一个数据序列构建另一个新的数据序列的结构体。其目的是简化代码的编写
python中有三种推导式
- 列表推导式
- 集合推导式
- 字典推导式
无推导式编码
假设我们要创建一个 0~9 的列表,可以使用while或者for循环来快速创建
- while循环方式
items = []
i = 0
while i < 10:items.append(i)i += 1
- for 循环方式
items = []
for i in range(10):items.append(i)
推导式语法格式
# 列表推导式
变量名 = [变量名 for ... in ... if 判断条件]
# 元组推导式
变量名 = {变量名 for ... in ... if 判断条件}
# 字典推导式
变量名 = {变量名1:变量名2 for ... in ... if 判断条件}
代码案例
例1. 创建一个 0~ 9 的列表
list1 = [i for i in range(10)]
例2: 创建一个 0 ~ 9 的偶数列表
list1 = [i for i in range(10) if i % 2 == 0]
例3. 创建列表 [(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
# 循环嵌套
list1 = []
for i in range(1,3):for j in range(3)list1.append((i,j))
print(2)# 推导式
list3 = [(i,j) for i in range(1,3) for j in range(3)]
print(list3)
例4. 创建一个字典,key是 1 ~ 5 的数字,value是该数字的2次方
maps = {i:i*i for i in range(1,6)}
例5. 将两个列表合并为一个字典
keys = ['name','age','gender']
values = ['Tom',20,'man']
user = {keys[i]:values[i] for i in range(len(keys))}
print(user)