我正在尋找一種方法,以for
迴路列表迭代才能通過的變量列表進行迭代,並能夠利用它們作爲這樣的變量:for循環的變量
>>> a = "original"
>>> b = "original"
>>> c = "original"
>>> d = "original"
>>> for i in [a,b,c,d]:
i = "change"
>>> print(a,b,c,d)
change change change change
我正在尋找一種方法,以for
迴路列表迭代才能通過的變量列表進行迭代,並能夠利用它們作爲這樣的變量:for循環的變量
>>> a = "original"
>>> b = "original"
>>> c = "original"
>>> d = "original"
>>> for i in [a,b,c,d]:
i = "change"
>>> print(a,b,c,d)
change change change change
您最初的代碼不起作用,因爲設置的「我」不實際設置的變量「A」的值,「b」的值,等
a = "original"
b = "original"
c = "original"
d = "original"
list = [a,b,c,d]
for i in range(0,len(list)):
list[i] = "change"
print(list)
使用'list'作爲變量名掩蓋內置函數。 – zondo
你不明白,我不認爲代碼會真正起作用,我只是用它來展示我想要做的事情。 @ dimab0 – user36456453765745
我意識到你知道你的代碼不起作用。這是否解決你的意圖? – dimab0
由於在原來的問題指出了意見,這聞起來並且您可能想要考慮解決實際問題的不同方式。話雖這麼說,這裏是你如何完成你想做什麼:
a = "original"
b = "original"
c = "original"
d = "original"
l = [a, b, c, d]
for idx, val in enumerate(l):
l[idx] = "change"
print(l)
這導致:
['change', 'change']
注意print(a)
仍然會導致original
作爲Python strings are immutable
如果這確實是必要的,那麼答案是'exec',但很可能你不需要這個。你爲什麼想這樣做? – zondo
不會發生。 '[a,b,c,d]'等於'[「original」,「original」,「original」,「original」]'。它沒有記憶變量'a','b','c'和'd'。無論如何,你爲什麼要這麼做?這聞起來像一個[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 –
我想你應該詳細說一下_why_你想要這個。鑑於你迄今爲止所展示的內容,我很想說python是不可能的,因爲字符串是不可變的,python對象不知道它們綁定了什麼名字...... – mgilson