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