Python基础之推导式大全

目录

1、推导式介绍

2、列表推导式

3、元组推导式

4、字典推导式

5、集合推导式


1、推导式介绍

python推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。

python支持各种数据结构的推导式:

列表推导式

元祖推导式

字典推导式

集合推导式

2、列表推导式

1.列表推导式,又称列表解析式

2.作用:一种简明扼要创建列表

3.格式

格式1:[表达式 for 变量 in iterable(可迭代对象)]

格式2:[表达式 for 变量 in iterable(可迭代对象) if 条件]

可迭代对象:序列、字符串、元祖、列表

你可以在列表中放入任意类型的对象返回结果将是一个新的列表,在这里if 和 for 语句为上下文的表达式运行完成后产生。

4.列表推导式执行的顺序:从左到右依次递进,语句之间是嵌套关系

5.简单模式:只包括循环不包括条件判断

# 输出1-9列表
list_1 = [x for x in range(1, 10)]
print(list_1)

# 求列表元素+1后的值
list_1 = [x + 1 for x in range(1, 10)]
print(list_1)

list_2 = [x * x for x in range(1, 10)]
print(list_2)

# 包括判断和筛选
list_1 = [x for x in range(1, 10) if x % 2 == 0]
print(list_1)

list_2 = [x * 10 for x in range(1, 10) if x % 2 == 0]
print(list_2)

# 包括循环嵌套和条件筛选
list_1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
list_2 = [x for y in list_1 for x in y if x % 2 == 0]
print(list_2)

# 遍历字符串
list1 = [x for x in 'python']
print(list1)

# 双遍历字符相加
list2 = [x + y for x in 'python' for y in '12']
print(list2)

3、元组推导式

1.元祖推导式可以利用range区间、元组、列表、字典、集合等数据类型,快速生成一个满足制定需求的元组。

2.格式:

格式1:tuple(表达式 for 变量 in iterable(可迭代对象))

格式2:tuple(表达式 for 变量 in iterable(可迭代对象) if 条件)

案例:

tup1 = (x for x in range(1, 10))
print(tup1)  # 返回生成器对象

tup2 = tuple(x for x in range(1, 10))
print(tup2)

4、字典推导式

字典推导式和列表推导式的格式类似,区别是字典推导式返回值的类型是字典。

格式:

格式1: {key : value for value in iterable(可迭代对象)}

格式2:{key : value for value in iterable(可迭代对象) if 条件}

dict1 = {x: x ** 2 for x in range(0, 9)}
print(dict1)

list1 = ['hello', 'python', 'hhhhhh']
dict1 = {key: len(key) for key in list1}
print(dict1)

5、集合推导式

1.集合为无序,不重复的

2.格式:

格式1:{表达式 for 变量 in iterable(可迭代对象)}

格式2:{表达式 for 变量 in iterable(可迭代对象) if 条件}

set1 = {x for x in 'abbccdef12345'}
print(set1)
print(type(set1))

你可能感兴趣的:(python)