[英]For-loop string replacement
在for循環中,我嘗試覆蓋字符串類型的變量。
item1 = "Item 1"
item2 = "Item 2"
for item in [item1, item2]:
if item == "Item 2":
item = "Item 1"
print (item1, item2)
結果顯示為"Item 1 Item 2"
。 應顯示"Item 1 Item 1"
我也嘗試了item = item.replace("Item 2","Item 1")
。 結果相同。
是什么阻止"Item 2"
被替換?
更新:
類似於在Python中的for循環中更改迭代變量,但使用字符串,而不是整數。
我有更長的變量列表需要驗證和覆蓋,因此只使用當前項目進行重新分配的for循環將是理想的(與item2 =“ Item 1”相對)
您將重新分配在for循環的每次迭代中分配的臨時變量item
。 因此,基本上,您將item
重新分配給"Item 1"
,然后解釋器會在下一次迭代時立即將其再次重新分配給"Item 2"
。 但是,無論如何,您永遠都不會通過重新分配此變量來對原始列表進行變異。
如果您確實希望最后一行打印您想要的內容,那么您想重新分配原始變量:
item1 = "Item 1"
item2 = "Item 2"
for item in [item1, item2]:
if item == "Item 2":
item2 = "Item 1"
print (item1, item2)
不過,列出更改列表更有意義。 這是常見的模式:
old_list = ["Item 1", "Item 2"]
new_list = []
for item in old_list:
if item == "Item 2":
new_list.append("Item 1")
else:
new_list.append(item)
print new_list
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.