如果在这里已经探讨了这个问题,请提前道歉-我在这里查看了不同的答案,但找不到我需要的东西。
我的目标是创建像这样的字典- {'a':[10, 9, 10, 10], 'b':[10, 9, 1, 0], 'c':[0, 5, 0, 1], and so on}
我所拥有的是多个字典,它们具有重复的键(每隔一个字典中的键都相同),就像这样 {'a':10, 'b': 0, 'c': 2}
{'a':7, 'b': 4, 'c': 4}
{'a':4, 'b': 5, 'c': 3}
我无法知道此类字典的数量,也无法知道其中的键是否连续到’f’或’g’,但是我知道这些键是重复的 。我已经尝试过,defaultdict
但是得到的是-
defaultdict(<type 'list'>, {'a': [10]})
defaultdict(<type 'list'>, {'a': [10], 'b': [3]})
defaultdict(<type 'list'>, {'a': [10], 'b': [3], 'c': [0]})
然后下一个字典也一样
defaultdict(<type 'list'>, {'a': [4]})
defaultdict(<type 'list'>, {'a': [4], 'b': [5]})
defaultdict(<type 'list'>, {'a': [4], 'b': [5], 'c': [1]})
我上面输出的代码是-
d = collections.defaultdict(list)
for k, v in z.iteritems():
d[k].append(v)
c = d.items()
print d
如果我print c
改为(打印d.items()
),我会得到-
[('a', [10])]
[('a', [10]), ('b', [3])]
[('a', [10]), ('c', [0]), ('b', [3])]
再次对每个字典重复此操作。我如何获得1个字典,其中包含所有键,值-
{'a':[10,0,..], 'b':[4, 3, 4,..], etc.} ?
我还应该补充一点,我的字典是for循环的结果,而不是单独存储在唯一变量中。
如果我正确理解您的态度,则您正在尝试合并各种字典。使用内置插件的方法之一(我相信,很快会有人给你一个numpy
和collections
答案)看起来是这样的:
ds = [
{'a':10, 'b': 0, 'c': 2},
{'a':7, 'b': 4, 'c': 4},
{'a':4, 'b': 5, 'c': 3} ]
merged = {}
for d in ds:
for k, v in d.items ():
if k not in merged: merged [k] = []
merged [k].append (v)
print (merged)
(为了清楚起见,非常详细)
编辑: 阅读了说明“我想要的结果是值/键的列表”的评论后,可以在生成的合并字典上使用它:
print ( [ (v, k) for k, v in merged.items () ] )
这样产生:
[([10, 7, 4], 'a'), ([2, 4, 3], 'c'), ([0, 4, 5], 'b')]
本文向大家介绍浅谈python字典多键值及重复键值的使用,包括了浅谈python字典多键值及重复键值的使用的使用技巧和注意事项,需要的朋友参考一下 在python中使用字典,格式如下: dict={ key1:value1 , key2;value2 ...} 在实际访问字典值时的使用格式如下: dict[key] 多键值 字典的多键值形式如下: dict={(ke11,key12):value
问题内容: 我有以下字典 我想获取字典列表中每个字典值“ KA20”和“ KA23”的键“ tmst”的总和。 您能对此提出建议吗? 问题答案: 您可以使用: 请注意,要正常工作,必须按分组键进行排序:
问题内容: 我有以下列表,其中包含重复的具有不同值的汽车注册号。我想将其转换为字典,该字典接受汽车登记号的多个键。 到目前为止,当我尝试将列表转换为字典时,它消除了键之一。如何制作具有重复键的字典? 清单是: 我试过的代码是: 问题答案: Python字典不支持重复键。一种解决方法是将列表或集合存储在字典中。 一种简单的方法是使用: 你要做的就是更换 与 你将获得一个列表字典。
本文向大家介绍python字典多键值及重复键值的使用方法(详解),包括了python字典多键值及重复键值的使用方法(详解)的使用技巧和注意事项,需要的朋友参考一下 在Python中使用字典,格式如下: 在实际访问字典值时的使用格式如下: 多键值 字典的多键值形式如下: 在实际访问字典里的值时的具体形式如下所示(以第一个键为例): 或者是: 以下是实际例子: 多值 在一个键值对应多个值时,格式: 访
问题内容: 有一个字典列表,我想删除具有相同键和值对的字典。 对于此列表: 我想退掉这个: 另一个例子: 对于此列表: 我想退掉这个: 问题答案: 尝试这个: 该策略是将字典列表转换为元组列表,其中元组包含字典项。由于可以对元组进行散列,因此你可以使用删除重复项set(在这里使用,这将是更老的python替代品,然后,使用来从元组中重新创建字典dict。 哪里: l 是原始清单 d 是列表中的词典
问题内容: 快速提问主要满足我对这个话题的好奇心。 我正在编写一些带有SQlite数据库后端的大型python程序,并且将来会处理大量记录,因此,我需要尽可能地优化。 对于一些功能,我正在字典中搜索关键字。我一直在使用“ in”关键字进行原型设计,并计划稍后返回并优化这些搜索,因为我知道“ in”关键字通常为O(n)(因为这仅表示python遍历整个列表并进行比较每个元素)。但是,由于python
我很难理解下面的代码是如何在字典中找到最大值的键的。我知道第一个参数返回键列表。但我没有得到第二个参数..帮帮我
如何将包含key:pair值(如{Hello:3,Bye:4})的字典转换为两个不同的列表?一个用于键,一个用于值? 谢谢