首页 > 解决方案 > Python 3 将值有效地存储在列表中

问题描述

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

我有一堆rand 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)

标签: python-3.xlistdictionary

解决方案


根据 Ami Marowka 关于并行软件的文章,列表理解比普通循环快大约 2 倍

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

Wes McKinney 在 Python for Data Analysis 中的一个示例表明,numpy 数组比上面代码中的嵌套循环快 10 到 100 倍。numpy 和列表​​理解对学习同样有用,希望这会有所帮助。


推荐阅读