当前位置: 首页 > 面试题库 >

字典Python中重复键的值列表

萧波峻
2023-03-14
问题内容

如果在这里已经探讨了这个问题,请提前道歉-我在这里查看了不同的答案,但找不到我需要的东西。

我的目标是创建像这样的字典- {'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循环的结果,而不是单独存储在唯一变量中。


问题答案:

如果我正确理解您的态度,则您正在尝试合并各种字典。使用内置插件的方法之一(我相信,很快会有人给你一个numpycollections答案)看起来是这样的:

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})的字典转换为两个不同的列表?一个用于键,一个用于值? 谢谢