Python - 总是将特定字符串添加到列表末尾

3

我遇到了瓶颈,需要一些帮助或建议来帮助我度过难关。

我想要在列表的末尾始终添加特定的字符串。

所以我们有:

List1 = ["sony","cant recall","samsung","dont know","apple","no answer", "toshiba"]

下面我们有另一个列表。
List2 = ["dont know", "cant recall","no answer"] 

以下是我目前开发的内容。这个脚本基本上检查List 1中的单词是否在List 2中,如果找到,那个特定的字符串应该从列表中当前位置移动到末尾。但是我现在只能找到字符串和它的索引。我不知道如何将找到的字符串移动并附加到列表末尾。

for p, item in enumerate(list1):
    for i, element in enumerate(list2):
        if item == element:
            print item, p

感谢!
3个回答

3
您可以像这样编写您的算法:

您可以按照以下步骤进行:

 list1 = [x for x in list1 if not x in list2] + [x for x in list1 if x in list2]

这将导致:
['sony', 'samsung', 'apple', 'toshiba', 'cant recall', 'dont know', 'no answer']

1
lst_result = set(lst1) | set(lst2)

作为副作用,从列表中删除重复项。不确定你是否想要它,但似乎被假定了。

为保持顺序:

lst1 = ["sony","cant recall","samsung","dont know","apple", "toshiba"]
lst2 = ["dont know", "cant recall","no answer"]

stripped = list(filter(lambda x: x not in lst2,lst1))
lst_result = stripped + lst2

-1
这是一种实现方式:
for item in list1:
    if item in list2:
        list1.remove(item)
        list1.append(item)

4
请注意,如果列表2中有两个连续的列表1项,这将无法正常工作(例如,请尝试使用list1 = ["sony",“cant recall”,“dont know”,“samsung”,“apple”,“no answer”,“toshiba”))。直接在迭代列表时删除其中的项不是最好的解决方法。 - Pierre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接