代码之家  ›  专栏  ›  技术社区  ›  Andres Urrego Angel

python 3在列表中有效地存储值

  •  0
  • Andres Urrego Angel  · 技术社区  · 6 年前

    这可能是一个愚蠢的问题,但我知道必须存在一种更有效的方法,如何在这个场景中使用循环来创建一个列表,稍后我将能够迭代来比较值。

    我有一堆 r q ,我想用它们组成一个列表,以便以后按键值排序比较这些值。请注意:

    这是我的代码:

    r1 = "a"
    r2 = "b"
    r3 = "c"
    r4 = "d"
    r5 = "e"
    
    q1 = "a"
    q2 = "b"
    q3 = "c"
    q4 = "d"
    q5 = "e"
    
    l = []
    record1 = {"q": q1, "r": r1}
    record2 = {"q": q2, "r": r2}
    record3 = {"q": q3, "r": r3}
    record4 = {"q": q4, "r": r4}
    record5 = {"q": q5, "r": r5}
    
    l.append(record1)
    l.append(record2)
    l.append(record3)
    l.append(record4)
    l.append(record5)
    
    score = 0
    for i in l:
        if i['q'] == i['r']:
            score +=1
    
    print(score)
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   tcratius    6 年前

    根据ami marowka关于并行软件的文章,列表理解的速度大约是普通循环的2倍。

    new_list = [expression(i) for i in old_list if filter(i)] 
    

    在python中由wes mckinney为数据分析提供的一个例子表明,numpy数组比嵌套循环快10-100倍,就像您在上面的代码中一样。numpy和list理解对学习同样有用,希望这能有所帮助。