【发布时间】:2015-10-04 06:55:36
【问题描述】:
我是 Python 新手。
我创建了一个代码,可以让我找到列表中给定项目之后的项目百分比。
给定一个列表:
list1=["a", "b", "a", "c", "a", "b", "c", "d", "e", "a", "b", "d", "e", "a", "c"]
我想找到,对于每个,比如说,“a”,每个项目都遵循的百分比。代码返回:
[(33, 'a'), (25, 'b'), (16, 'e'), (16, 'd'), (16, 'c')]
[(30, 'a'), (20, 'e'), (20, 'd'), (20, 'c'), (20, 'b')]
[(25, 'e'), (25, 'd'), (25, 'b'), (25, 'a'), (12, 'c')]
[(33, 'e'), (33, 'd'), (33, 'b'), (33, 'a')]
[]
输出是正确的,这就是我想要的。
但我也想总结不同字典的每个键,所以我可以有这样的东西:
[(121, 'a'), (103, 'b'), (94, 'e'), (94, 'd'), (48, 'c')]
我没有找到办法做到这一点。我知道有一些方法可以对不同字典中每个键的值求和,但这里的问题是字典是在 for 循环中创建的,因为我需要尽可能多的目标项作为字典(在本例中为“a”) .
我尝试在每个字典中迭代
for key, value in dictio.items():
dictio[key]=value + dictio.get(key, 0)
print (dictio)
但结果一团糟,离我想要的也不远了。
我想知道您是否可以在不知道它们的编号的情况下加入多个字典(因为它们是在 for 循环中创建的)。
而且,因为我想更好地理解 Python 逻辑,所以如果可能的话,我不想使用外部库。
提前谢谢你!
尼科洛
【问题讨论】:
-
不能
max(range(len(list1)))只是len(list1)? -
一个 dict 可以使用 update 函数与另一个 dict 组合,即 dict1.update(dict2) 并且这会更新 dict1。如果 dict1 和 dict2 有一个共同的键,则 dict2 中该键的值获胜。
-
@SuperBiasedMan 你是对的,但更准确地说是 len(list1)-1。他想要最后一个元素的索引。
-
TMC(代码太多)...
标签: python list loops dictionary iteration