列表集合字典推导式

Source

推导式

推导式,又称解析式,是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)