如何构造一个包含无效关键字参数的字典的字典,而不是使用{}

时间:2013-06-24 13:31:18

标签: python

如果使用{}仅仅是dict()的快捷方式,用于创建dict。所以我想知道如何创建一个dict,其中包含无效关键字参数的键,如1"1foo2bar3"等,不使用花括号或方括号(带参考)到下面的代码)并坚持dict()

以下代码不是一个选项:

a = dict()
a[1] = 1

2 个答案:

答案 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()的“纯粹”快捷方式。除了长度差异之外,它还是性能方面的捷径。

http://doughellmann.com/2012/11/the-performance-impact-of-using-dict-instead-of-in-cpython-2-7-2.html

你最好使用字典文字,除非你需要支持一个不包含它们的旧版Python,或者如果你正在做一些列表或其他理解来构建一个版本的dict Python< 2.7(因为小于2.7的Python版本不支持dict理解[ie {x: y for x, y in some_iterable}],我相信。)