追加值的关键,如果键已经存在(巨蟒/ Jython的)(Appending values to a

2019-07-29 16:53发布

我有我需要制作成一本字典的列表。 该清单中有重复(即将)键具有不同的值。 如何找到这些键和新值追加到它?

list=[q:1,w:2,q:7]
dictionary= q:1,7
            w:2

提前致谢

Answer 1:

使你的字典列表中的值,让你有:

dictionary = {'q': [1, 7],
              'w': [2]
}

等即你的一个项的值是一个项目列表。 这意味着,当你有另一个'q' ,你可以这样做:

dictionary['q'].append(5)

除了dictionary['q']将是一个KeyError你第一次做,所以使用setdefault代替:

dictionary.setdefault('q', []).append(5)

所以,现在你只需要遍历输入列表中的每个键,值对,做以上为他们每个人。

你可能或者想拥有dictionary是:

dictionary = collections.defaultdict(list)

所以,你可以做dictionary['q'].append(5) -它会工作与上述相同,在各方面的酒吧之一。 如果,你已经解析您的原始清单,并正确设置所有的值之后,你的字典是这样的:

dictionary = {'q': [1, 7, 5]
              'w': [2, 8, 10, 80]
              'x': [3]
}

而你尝试做print(dictionary['y']) 你有什么期望发生? 如果使用普通字典和setdefault ,这被认为是一个错误,所以它会引发KeyError 。 如果使用defaultdict ,它会打印一个空列表。 这些无论更有意义,为您的代码应该确定你的代码是哪种方式。



文章来源: Appending values to a key if key already exists (python/jython)