# 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}]
我想知道上面哪一个更有效率。 而且,如果你有一个更好的,请告诉我。
答案 0 :(得分:7)
差异无关紧要。两者都需要每次都创建一个新的dict。由于第一种方法更清晰,因此优于第二种方法。
我的建议是列表理解:
array_c = [{str(i): i} for i in range(5)]
答案 1 :(得分:1)
这是一个单线程,也应该更有效:
array_a.extend([{str(i): i} for i in xrange(5)])
或通过map():
array_a.extend(map(lambda i: {str(i): i}, xrange(5)))