Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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 哪种将dict附加到列表的方式更有效_Python - Fatal编程技术网

Python 哪种将dict附加到列表的方式更有效

Python 哪种将dict附加到列表的方式更有效,python,Python,我想知道上面哪一个更有效。 如果您有更好的,请告诉我。两者之间的差异不相关。每次都需要创建一个新的dict。由于第一种方法更清晰,因此比第二种方法更可取 我的建议是列出: # Method one array_a = [] a = {} for i in range(5): a = {} a[str(i)] = i array_a.append(a) print(array_a) # [{'0': 0}, {'1': 1}, {'2': 2}, {'3': 3}, {'4

我想知道上面哪一个更有效。
如果您有更好的,请告诉我。

两者之间的差异不相关。每次都需要创建一个新的dict。由于第一种方法更清晰,因此比第二种方法更可取

我的建议是列出:

# Method one
array_a = []
a = {}
for i in range(5):
    a = {}
    a[str(i)] = i
    array_a.append(a)
print(array_a)
# [{'0': 0}, {'1': 1}, {'2': 2}, {'3': 3}, {'4': 4}]

# Method two    
from copy import deepcopy
array_b = []
b = {}
for i in range(5):
    b.clear()
    b[str(i)] = i
    array_b.append(deepcopy(b))
print(array_b)
# [{'0': 0}, {'1': 1}, {'2': 2}, {'3': 3}, {'4': 4}]

这里有一个单行程序也应该更有效:

array_c = [{str(i): i} for i in range(5)]
或通过map():


你测试过这个吗?ipython有一个非常好的
timeit
命令,使这变得非常简单。列表comp是等效的,并且更加简洁。而且它看起来很酷:)我不能使用这个列表理解,因为我的逻辑非常复杂,如果把所有内容都放在紧凑的格式中,就很难准备好。OP只是提供了一个演示,我想知道好的做法。
array_a.extend([{str(i): i} for i in xrange(5)])
array_a.extend(map(lambda i: {str(i): i}, xrange(5)))