列表推导式
推导式
推导式是通过一行循环判断遍历出一些列数据的方法。
语法: val for val in iterable
#创建一个包含1到50的列表:
lst = [i for i in range(1,51)]
print(lst)
带有运算操作的推导式
创建一个列表,其中每个元素都是原始列表中对应元素的两倍:
lst = [i*2 for i in range(1,6)]
print(lst)
带有判断条件的推导式
创建一个列表,只包含原始列表中的奇数元素:
lst = [i for i in range(1,11) if i % 2 == 1]
print(lst)
多循环推导式
创建一个列表,其中每个元素都是两个列表中对应元素的组合:
lst1 = ["孙杰龙","陈露","曹静怡"]
lst2 = ["王志国","邓鹏","合理"]
lst = [i+"♡♢♤♠"+j for i in lst1 for j in lst2]
print(lst)
带有判断条件的多循环推导式
创建一个列表,只包含两个列表中索引相同的元素的组合:
lst = [i+"♡♢♤♠"+j for i in lst1 for j in lst2 if lst1.index(i) == lst2.index(j)]
print(lst)
求矩阵M和N中元素的乘积
M = [ [1,2,3], [4,5,6], [7,8,9] ]
N = [ [2,2,2], [3,3,3], [4,4,4] ]
我们希望得到一个新的矩阵,其中的每个元素是M和N中对应元素的乘积。
实现效果1
首先,我们可以使用双层循环来遍历M和N中的每个元素,并将它们的乘积添加到新的列表中:
lst = []
for i in range(3):
for j in range(3):
lst.append(M[i][j] * N[i][j])
print(lst) # 输出:[2, 4, 6, 12, 15, 18, 28, 32, 36]
实现效果2
然后,我们可以使用推导式来简化这个过程。首先,我们创建一个包含三个空列表的列表:
lst = [ [] for i in range(3)]
print(lst) # 输出:[[], [], []]
然后,我们使用推导式来填充这个列表:
lst = [ [M[i][j] * N[i][j] for j in range(3)] for i in range(3)]
print(lst) # 输出:[[2, 4, 6], [12, 15, 18], [28, 32, 36]]
这样,我们就得到了一个新的矩阵,其中的每个元素都是M和N中对应元素的乘积。

浙公网安备 33010602011771号