在Python中,我需要一个字典对象,如下所示:
{'a': 10, 'b': 20, 'c': 10, 'd': 10, 'e': 20}
Run Code Online (Sandbox Code Playgroud)
我已经能够通过组合dict.update()和如下dict.fromkeys()功能成功地获得这个:
myDict = {}
myDict.update(dict.fromkeys(['a', 'b', 'c'], 10))
myDict.update(dict.fromkeys(['b', 'e'], 20))
Run Code Online (Sandbox Code Playgroud)
但是,因为代码是为有时需要添加键/值的新手用户编写的,所以我更喜欢简单的简单(Perl-like)语法,例如:
myDict = {}
myDict['a', 'c', 'd'] = 10
myDict['b', 'e'] = 20
Run Code Online (Sandbox Code Playgroud)
然而,这给了我:
myDict = {('a', 'c', 'd'): 10, ('b', 'e'): 20}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以进一步简化我的第一个例子(使用dict.update()和dict.fromkeys()),并获取我正在寻找的dict对象?
或者,或者,如果我在第二个例子中有一个带有元组的字典,那么我是否可以轻松地进行查找,例如myDict['c']或myDict.get('c')获取值10?
假设有一本字典
a = {'a':122,'b':123,'d':333,'e':'233'}
Run Code Online (Sandbox Code Playgroud)
现在我想将它恢复为一对一的字典,以便我们可以做到这一点.
我尝试过的:
In [67]: ivd=[(v,k) for (k,v) in a.items()]
In [68]: ivd
Out[68]: [(122, 'a'), (123, 'b'), ('233', 'e'), (333, 'd')]
Run Code Online (Sandbox Code Playgroud)
现在可能是我们可以将其ivd转换为字典的方式.我的问题是
ivd为字典?你将如何在 python 中创建一个字典,它看起来有点像这样:
{1:0, 2:0, 3:0, 4:0, ...}
Run Code Online (Sandbox Code Playgroud)
对于特定的迭代次数?