【发布时间】:2017-11-24 19:47:14
【问题描述】:
我在课堂实验室工作,但我有点卡住了,例如我有一个包含键和值的字典,这是另一个字典。
字典A:
dict_a = {
1: {
'Engine': 4,
'Speed': 749,
'max_speed': 1140,
'name': 'Ship1',
},
2: {
'Engine': 2,
'Speed': 600,
'max_speed': 900,
'name': 'B777',
},
3: {
'Engine': 4,
'Speed': 1130,
'max_speed': 1200,
'name': 'Air_max',
}
}
我正在尝试编写一个函数,该函数将接受两个参数(字典 A 和过滤字典)例如:
filter = {
'Engine' :4,
'name': 'Air_max',
}
此函数应返回一个列表,其中包含具有值 > 或等于过滤器的字典:
这只是一个例子。因为我只需要一个提示想法如何做到这一点。实际上,我的字典 A 非常大。
到目前为止,我有这个看起来不正确:
filtered = {
'Engine': 2,
'Speed': 300,
'Type': 'Electric'
}
result = []
for k, v in full_data.items():
for i, s in v.items():
for a, b in filtered.items():
if v[i] >= filtered[a]:
result.append(v)
filtered_result = []
for each in result:
if each not in filtered_result:
filtered_result.append(each)
filtered_result[:3]
【问题讨论】:
-
看起来你的“字典”违背了字典的目的,如果你必须遍历它们。
-
您似乎想要
dicts 中的list而不是dicts 中的dict,其中键基本上只是索引。 -
你的过滤代码有什么问题?它根本不起作用吗?是不是太慢了?它会产生什么样的结果?
-
@Blurp 我正在返回未过滤的字典列表。
-
@MooingRawr 不,我不想要代码,我只是想要我做错了什么。以及如何解决它。
标签: python loops dictionary iteration