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