在列表操作中优化python中的循环
Posted
技术标签:
【中文标题】在列表操作中优化python中的循环【英文标题】:optimizing looping in python in list operation 【发布时间】:2022-01-24 03:01:12 【问题描述】:我正在使用以下代码进行迭代。但是如果长度很长,那么这将变得很耗时。
a=[11,12,3,4,5,6,15]
b=[1,3,12,15]
c=[1,2,3,4,5,6,7]
d=[]
for i in range(len(a)):
for j in range(len(b)):
if b[j]==a[i]:
d.append(c[i])
print(d)
还有其他最佳方式来完成这项工作吗?
提前致谢
【问题讨论】:
在b
中创建一个dict
会有很大帮助。
【参考方案1】:
检查集合是否包含对象已针对集合进行了优化。你可以这样做:
b_set = set(b)
[ci for ai, ci in zip(a, c) if ai in b_set]
【讨论】:
【参考方案2】:使用in
:
for i,v in enumerate(a):
if v in b:
d.append(c[i])
或列表推导:
d = [v for i,v in enumerate(c) if a[i] in b]
【讨论】:
以上是关于在列表操作中优化python中的循环的主要内容,如果未能解决你的问题,请参考以下文章