我想運行一個Python程序,它循環多次,每次都創建一個NEW數組 - 即沒有數據被覆蓋 - 用引用循環數命名的數組,這樣我可以在後續循環中調用它。例如,我可能想要在從0運行到i的循環中創建數組x0,x1,x2,...,xi,然後在運行相同變量的另一個循環中調用每個數組。 (基本上相當於能夠將變量放入字符串中,如'string %d %(x)'
)。如何在Python中循環中重命名變量
回答
使用的字典:
arraysDict = {}
for i in range(0,3):
arraysDict['x{0}'.format(i)] = [1,2,3]
print arraysDict
# {'x2': [1, 2, 3], 'x0': [1, 2, 3], 'x1': [1, 2, 3]}
print arraysDict['x1']
# [1,2,3]
使用列表:
arraysList = []
for i in range(0,3):
arraysList.append([1,2,3])
print arraysList
# [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
print arraysList[1]
# [1, 2, 3]
您可以爲此創建一個對象,然後使用setattr函數完成此操作。 基本上,它的工作是這樣的:
setattr(myobject, 'string', value)
這是一樣的做:myobject.string = value
您可以訪問globals()
字典來引入新的變量。像:
for i in range(0,5):
globals()['x'+str(i)] = i
這個循環之後你會得到
>>> x0, x1, x2, x3, x4
(0, 1, 2, 3, 4)
。注意,根據documentation,你不應該使用locals()
字典,因爲改變這個可能不影響所使用的值口譯員。
除了它不適用於本地人()' –
是的,我已經改變了我的答案。雖然它似乎工作,如果你只引入新的變量(並且以後不改變它們的值) – MartinStettner
請注意任何人閱讀這個答案:請不要做這種愚蠢的事情。正確的解決方案是使用字典或列表。 –
依靠變量的名稱並改變它們並不是最好的選擇。
正如人們在評論中指出的那樣,最好是使用字典或列表來代替。
- 1. 重命名變量在for循環
- 2. 如何在for循環中重命名類似命名的變量
- 3. 在Python中命名循環
- 4. 變量命名爲循環
- 5. 在Python中使用循環來命名變量
- 6. 如何在ractive.js中獲得一個命名的循環變量?
- 7. 你如何改變python循環中的變量名?
- 8. 如何在Python中影響內循環的外循環變量?
- 9. Python-如何防止變量在while循環中重置
- 10. 如何重命名在RStudio環境中加載的變量?
- 11. 基於範圍的循環中未命名的循環變量?
- 12. 使用foreach循環中的變量重命名屬性
- 13. Python中的循環變量
- 14. 在Python中循環中分配變量
- 15. 如何動態更改for循環python中的變量名稱?
- 16. 如何重置循環中變量的值? (Python 3.1.1)
- 17. Sas重命名變量與做循環,如果然後條件
- 18. 如何在Arduino上循環變量名?
- 19. 如何在變量內重複循環?
- 20. 在Python中循環多個變量
- 21. Python - 變量不在循環中更新
- 22. 在for循環中更新變量Python
- 23. 重命名矩陣和標量循環
- 24. 在循環中生成變量名稱
- 25. 命名一個循環內的變量
- 26. 嵌套的循環和變量命名
- 27. 如何在python循環中用變量控制增量
- 28. 變量不在foreach循環中重寫
- 29. Python/SPSS重命名變量名稱
- 30. 如何在Python中的循環中迭代多個變量?
沒有做到這一點...使用列表(或字典)的最佳方式,而不是 – jamylak
你的問題是你正在使用本地變量,您應該使用列表或字典*而不是*。 –