1

如果使用{}只是快捷方式,则 to dict(),用于创建dict. 所以我想知道如何创建一个dict包含无效关键字参数的键,例如等1"1foo2bar3"而不使用大括号或方括号(参考下面的代码)并坚持dict()

下面的代码不是一个选项:

a = dict()
a[1] = 1
4

2 回答 2

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}
于 2013-06-24T13:33:26.530 回答
0

{}不是dict(). 除了长度差异之外,它在性能方面是一个捷径。

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

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

于 2013-06-24T13:41:11.540 回答