列表推导式
推导式#
推导式是通过一行循环判断遍历出一些列数据的方法。
语法: 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中对应元素的乘积。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本