推导式
文章目录
① while、for 规律列表
while 有规律列表
需求:创建一个0 - 9 的列表
-
while 循环实现
有规律列表
''' 1.1 创建空列表 1.2 循环将有规律数据写入 列表 ''' list1 = [] i = 0 while i < 10: list1.append(i) i += 1 print(list1) ------------------------------------------------------- # 输出结果 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for 有规律列表
需求:创建一个0 - 9 的列表
-
for 循环实现
有规律列表
''' 1.1 创建空列表 1.2 循环将有规律数据写入 列表 ''' list2 = [] for i in range(10): list2.append(i) print(list2) ------------------------------------------------------- # 输出结果 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
② 推导式(列表)
推导式的作用:化简代码
。推导式只支持列表、字典、集合。
1、列表推导式
-
作用:用一个
表达式
创建
一个有规律的列表或控制
一个有规律的列表。 列表推导式又叫列表生成式。
语法:
list = [返回值 for i in range()]
实例:
list1 = [i for i in range(10)] print(list1) ------------------------------------------------------- # 输出结果 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2、if 列表推导式
需求:创建0-10
的偶数
列表
-
方法一:range( )步长实现
list1 = [i for i in range(0,11,2)] print(list1) ------------------------------------------------------- # 输出结果 [0, 2, 4, 6, 8, 10]
-
方法二:if( )推导式实现
list2 = [i for i in range(11) if i % 2 == 0] print(list2) ------------------------------------------------------- # 输出结果 [0, 2, 4, 6, 8, 10]
3、多个for循环 实现 列表推导式
多个for循环原理:循环嵌套
-
需求:创建列表如下:
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
实例:
list1 = [(i,j) for i in range(1,3) for j in range(3)] print(list1) ------------------------------------------------------- # 输出结果 [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
③ 推导式(字典)
推导式的作用:化简代码
。推导式只支持列表、字典、集合。
1、字典推导式
-
作用:快速
合并列表
为字典
或提取字典中目标数据。
语法:
dict1 = {key:value for i in range()}
实例:
''' 需求:创建一个字典:字典key是1-5数字,value是这个数字的2次方 ''' dict1 = {i:i**2 for i in range(6)} print(dict1) ------------------------------------------------------- # 输出结果 {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
2、合并 两个列表为字典
-
需求:
合并
两个列表
为字典。
实例:
list1 = ['name','age','gender'] list2 = ['Tom',20,'man'] dict1 = {list1[i]:list2[i] for i in range(len(list2))} print(dict1) ------------------------------------------------------- # 输出结果 {'name': 'Tom', 'age': 20, 'gender': 'man'}
3、提取字典中 目标数据
# 一个月各电脑销售额
counts = {'MBP':268, 'Hp':125, 'DELL': 201, 'Lenovo':199, 'acer':99}
# 需求:提取上述电脑数量大于200的字典数据(方便囤货)
count1 = {key:value for key,value in counts.items() if value >= 200}
print(count1)
-------------------------------------------------------
# 输出结果
{'MBP': 268, 'DELL': 201}
② 推导式(集合)
1、集合推导式
需求:创建一个集合,数据为下方列表的2次方。
list1 = [1,2,3]
实例如下:
list1 = [1,2,3]
set = {i ** 2 for i in list1}
print(set)
-------------------------------------------------------
# 输出结果
{1, 4, 9}