【问题标题】:optimizing looping in python in list operation在列表操作中优化python中的循环
【发布时间】: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 会有很大帮助。

标签: python list loops for-loop


【解决方案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]
    

    【讨论】:

      猜你喜欢
      • 2019-12-05
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      • 2020-10-22
      • 1970-01-01
      相关资源
      最近更新 更多