簡體   English   中英

循環字符串替換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM