![](/img/trans.png)
[英]Python: Creating each item in a list as a variable and assigning a value to it in a for loop
[英]Python Does creating/assigning a value to a variable every loop take more memory/time than creating/assigning a variable outside the loop?
例如:
for i in range(5000):
a = "some words"
# Other things
對比
a = "some words"
for i in range(5000):
# Other things
我想第二個會更好,但它到底好多少? 在循環外放置一些代碼可能更有效,但在使用變量之前立即分配變量時,調試和閱讀也更容易。
直觀地說,在普通 cPython 中,由於沒有可能將賦值提升到循環之外的即時編譯器,我們希望 option2 更快。
有關“編譯器提升”的更多信息,請參見此處。
你可以自己試試。
import timeit
foo = '''
for i in range(5_000):
a = "some words"
'''
bar = '''
a = "some words"
for i in range(5_000):
pass
'''
print(timeit.timeit(foo, number=10_000))
print(timeit.timeit(bar, number=10_000))
給我:
1.3565055000000001
0.9187005000000001
請注意,盡管與您的應用程序正在執行的任何其他操作相比,這種速度差異可能毫無意義,我建議您選擇您認為最容易理解和維護的任何內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.