我希望能够使用其键中的字符串来操纵Python字典的值(实际上是添加它们)。例如,这是我有一个字典:
dict = {'010': 155, '001': 1363, '011': 68, '101': 356, '100': 1377, '111': 36, '110': 69, '000': 4768}
说我想提取和/或添加以1
结尾的键的值(例如本例中的'001': 1363, '011': 68, '101': 356, '111': 36
),并将它们放在值those_that_start_with_1 = 1363 + 68 + 356 + 36
或数组之类的东西。我该怎么做?
谢谢!
答案 0 :(得分:3)
尝试:
tmp = [ v for k, v in dict.items() if k.endswith('1') ]
[]
语法是列表理解语法(基于内部表达式创建列表。v
是值,将被放入列表中。dict.items()
是迭代器,生成{{ 1}}值并成对返回v
中的所有项(第一个是键,第二个值),dict
条件过滤器将值放入if
中的值-仅键名以{结尾的值{1}}将被允许通过。
如果要添加它们,可以尝试:
tmp
答案 1 :(得分:2)
如果不了解字典理解,请尝试-
a = 0
for k in dict:
if k.endswith('1'):
a += dict[k]
print(a)
答案 2 :(得分:1)
您可以使用item()
函数遍历字典并执行以下操作(根据您的示例)-
sum([v for k, v in dict.items() if k.endswith('1')])
查看更多here有关字典理解的信息
答案 3 :(得分:1)
尝试一下
dic = {'010': 155, '001': 1363, '011': 68, '101': 356, '100': 1377, '111': 36, '110': 69, '000': 4768}
print(sum([dic[key] for key in dic if key.endswith('1') ]))
# 1823
还有一点,dict是Python中的Built-in Functions。请不要使用Built-in Functions作为变量名。