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)))