Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建空词典的列表_Python_List_Dictionary - Fatal编程技术网

Python 创建空词典的列表

Python 创建空词典的列表,python,list,dictionary,Python,List,Dictionary,我想创建一个包含空目录的可变长度列表 n = 10 # size of list foo = [] for _ in range(n) foo.append({}) 你会用同样的方法吗,还是有类似的方法 a = [{}*n] 列出解救的方法 foo = [{} for _ in range(n)] 恐怕没有更短的符号了。在Python2中,您使用xrange(n)而不是range(n)来避免将无用的列表具体化 另一种方法是,[{}]*n创建一个长度为n的列表,只使用一个字典,引用n

我想创建一个包含空目录的可变长度列表

n = 10 # size of list
foo = []
for _ in range(n)
    foo.append({})
你会用同样的方法吗,还是有类似的方法

a = [{}*n]

列出解救的方法

foo = [{} for _ in range(n)]
恐怕没有更短的符号了。在Python2中,您使用
xrange(n)
而不是
range(n)
来避免将无用的列表具体化


另一种方法是,
[{}]*n
创建一个长度为
n
的列表,只使用一个字典,引用
n
次。在向字典添加键时,这会导致令人不快的惊喜。

前面给出的答案对我来说很好,因为我不关心引用,因为我在下一步将整个列表转换为JSON。但是我会接受你的答案,因为它更通用。@MartinFlucka:使用
[{}]*3
不是一个好的做法,即使这只是为了JSON;你会发现自己忘记了那个小细节,当你以后添加键和值时,无论如何你会遇到一个可怕的惊喜。@MartijnPieters你是完全正确的,安全总比遗憾好。@j08lue:这就是我提到它的原因。但是对于Python3,
xrange()
被重命名为
range()
,并进行了改进,我的初始示例假设Python3。这基本上意味着python中的预分配列表不是“pythonic”的吗?列表在python中通常是一大难题,但我有一种感觉,我只是没有按预期使用它们。。。