如果使用{}
仅仅是dict()
的快捷方式,用于创建dict
。所以我想知道如何创建一个dict
,其中包含无效关键字参数的键,如1
,"1foo2bar3"
等,不使用花括号或方括号(带参考)到下面的代码)并坚持dict()
?
以下代码不是一个选项:
a = dict()
a[1] = 1
答案 0 :(得分:3)
您的意思是使用默认的dict构造函数来创建字典吗?
>>> a = dict((x, x) for x in range(10))
>>> a
{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}
它需要一组元组,并将其转换为字典,通常与上面的生成器表达式相结合 - 但您也可以为它提供一个以前准备好的元组集合。
>>> dict([(1, 1), ('a', 'a')])
{'a': 'a', 1: 1}
使用您的示例:
>>> dict([(1, None), ("1foo", None), ("foo2bar3", None)])
{1: None, '1foo': None, 'foo2bar3': None}
答案 1 :(得分:0)
{}
不是dict()
的“纯粹”快捷方式。除了长度差异之外,它还是性能方面的捷径。
你最好使用字典文字,除非你需要支持一个不包含它们的旧版Python,或者如果你正在做一些列表或其他理解来构建一个版本的dict Python< 2.7(因为小于2.7的Python版本不支持dict理解[ie {x: y for x, y in some_iterable}
],我相信。)