python-3.x - Python 3 将值有效地存储在列表中
问题描述
这可能是一个愚蠢的问题,但我知道必须存在一种更有效的方法,如何在这种情况下使用循环来创建一个列表,稍后我将能够迭代以比较值。
我有一堆r
and 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)
解决方案
根据 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 和列表理解对学习同样有用,希望这会有所帮助。
推荐阅读
- javascript - 如何使用 Typescript 更改 React .js 的结构
- flutter - Flutter 避免多次运行 FutureBuilder
- javascript - 不断收到 TypeError:当我单击复选框时无法读取未定义的属性“地图”,不知道问题出在哪里
- php - laravel MongoDB\BSON\UTCDateTime 类未找到
- javascript - JavaScript:如何通过三元条件的边缘情况
- python - AttributeError:“numpy.ndarray”对象没有属性“where”
- java - Kotlin 是否支持 AIDL?
- rust - 在 Rust 中,如何从 HashMap 的键创建 HashSet?
- javascript - 有没有办法在 JavaScript 中代理对属性的调用?
- google-bigquery - 如何从 CIDR BigQuery 获取 From & To IP 地址