小编典典

是否可以一次将相同的值分配给dict对象中的多个键?

python

在Python中,我需要一个类似于以下内容的字典对象:

{'a': 10, 'b': 20, 'c': 10, 'd': 10, 'e': 20}

我已经可以通过结合dict.update()和这样的dict.fromkeys()功能成功获得此功能:

myDict = {}
myDict.update(dict.fromkeys(['a', 'b', 'c'], 10))
myDict.update(dict.fromkeys(['b', 'e'], 20))

但是,由于该代码是为新手用户编写的,他们有时可能需要添加键/值,所以我更喜欢简单的准系统(类似于Perl)的语法,例如:

myDict = {}
myDict['a', 'c', 'd'] = 10
myDict['b', 'e'] = 20

但是,这给了我:

myDict = {('a', 'c', 'd'): 10, ('b', 'e'): 20}

有什么方法可以进一步简化我的第一个示例(使用dict.update()dict.fromkeys()),并获得我要查找的dict对象?

或者,或者,如果像我的第二个示例那样,我有一个包含元组的字典,是否有一种简单的方法让我进行诸如myDict['c']or的查找myDict.get('c')并获得值10?


阅读 185

收藏
2020-12-20

共1个答案

小编典典

我想说的是,您所拥有的 非常 简单,您可以将其稍微改善一下:

my_dict = dict.fromkeys(['a', 'b', 'c'], 10)
my_dict.update(dict.fromkeys(['b', 'e'], 20))

如果您的键是元组,则可以执行以下操作:

>>> my_dict = {('a', 'c', 'd'): 10, ('b', 'e'): 20}
>>> next(v for k, v in my_dict.items() if 'c' in k)      # use .iteritems() python-2.x
10

当然,这将返回第一个遇到的值,其键包含给定的元素。

2020-12-20