列表(四)-列表推导式
1.列表推导式的基本格式:
变量名= [表达式 for 变量 in 列表]
或者
变量名= [表达式 for 变量 in 列表 if 条件]
2.执行流程:
遍历出列表中的内容给变量,表达式根据变量值进行逻辑运算
或者遍历列表中的内容给变量,然后进行判断,符合的值在给表达式
# 练习1:将lst中每一个元素进行平方后放入到一个新列表中
lst = [1, 2, 3, 4, 5]
l2 = []
for i in lst:
l2.append(i*i)
print(l2)
# 推导式
l2 = [i*i for i in lst]
# 练习2:将lst中的奇数放到一个新列表中
lst = [1, 2, 3, 4, 5,6,7,8]
# 推导式
l3 = [i for i in lst if i%2==1]
# 练习3.将一个嵌套列表转换成一个一维列表
#lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 转换成:lst2=[1, 2, 3, 4, 5, 6, 7, 8, 9]
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 传统方式
l4 = []
for i in lst:
for j in i:
l4.append(j)
# 推导式
l4 = [j for i in lst for j in i]
# 练习5:现在有一列表lst = [[1,2,3],[4,5,6],[7,8,9]]要求出[1,4,7] 和 [1,5,9] 元素,思考如何取出
lst = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
lst_1 = [i[0] for i in lst]
lst_2 = [lst[i][i] for i in range(len(lst))]
3 推导式好处和不足
- 优点:简化代码,提高代码的简洁性
- 不足:降低代码的可读性