【发布时间】:2014-05-23 21:01:17
【问题描述】:
假设我有 2 个如下列表。我正在比较两个列表的项目,如果 list1 的第一个项目存在于 list2 的项目中,则将 list1 的项目替换为 list2 的匹配项目,然后从 list2 中删除该项目。然后它应该移动到 list1 的第二项,依此类推。我有以下不正确的代码,但我不知道该怎么做。两个列表中的项目数可能不相同。
list1 = ["abc", "abc", "abc", "xyz", "xyz"]
list2= ["abc123", "abc456", "abc000", "xyz111"]
for i in list1:
for j in list2:
if i in j:
i.replace(i, j)
list2.remove(j)
continue
else:
continue
结果应该是:
list1 = ["abc123", "abc456", "abc000", "xyz111", "xyz"]
【问题讨论】:
-
您正在从
list2中删除,同时您正在循环访问它。那总会带来问题。假设您的方法在其他方面是正确的,您可以向后循环或复制它并循环。 -
另外,整个
continue-else-continue构造似乎完全没有必要。
标签: python