簡體   English   中英

如何在 Python 中按另一個列表的順序替換列表項

[英]How to replace list items in order of another list in Python

讓我們看看這個列表:

list2 = ['<@25032923629058>', 'dad', 'awd', '<@65432156029058>', '<@98450239029058>']

我想按此列表的順序替換以 <@ 開頭的元素:

list = ['dd#1111', 'dd#2222', 'dd#333']

預期結果:

['dd#1111', 'dad', 'awd', 'dd#2222', 'dd#333']

以下腳本更改了以 <@ 開頭的每個具有相同值的項目,我想避免這種情況:

for i in range(len(list2)):
    if list2[i].startswith("<@"):
        list2[i] = list[0]
print(list2)

一個簡單的修復,替換后刪除列表[0]。

for i in range(len(list2)):
    if list2[i].startswith("<@"):
        list2[i] = list[0]
        del list[0]
print(list2)

第二個注意事項,不要將您的列表命名為list 這是一個不好的做法,從長遠來看會傷害你。

您可以使用 counter to 每次將list2中的單詞替換為list中的不同單詞

我還建議不要在您的列表中使用名稱list ,因為它在 python 中具有空間意義

這應該可以解決問題:

list2 = ['<@25032923629058>', 'dad', 'awd', '<@65432156029058>', '<@98450239029058>']
list = ['dd#1111', 'dd#2222', 'dd#333']
count=0
for i in range(len(list2)):
    if list2[i].startswith("<@"):
        list2[i] = list[count]
        count+=1
print(list2)

output:

['dd#1111', 'dad', 'awd', 'dd#2222', 'dd#333']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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