列表推导式

推导式#

推导式是通过一行循环判断遍历出一些列数据的方法。

语法: 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中对应元素的乘积。

posted @   江寒雨  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示
主题色彩