如何在Python中操作列表中的数据

时间:2019-07-08 05:19:19

标签: python

我希望能够使用其键中的字符串来操纵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或数组之类的东西。我该怎么做?

谢谢!

4 个答案:

答案 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作为变量名。