Python - 始终将某些字符串附加到列表的末尾

时间:2013-06-20 14:17:16

标签: python list

我已经碰壁了,需要一些帮助或建议才能让我通过。

我想将某些字符串追加到列表的末尾。

所以我们有

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

接下来我们有另一个列表

List2 = ["dont know", "cant recall","no answer"] 

这是我迄今为止开发的内容。该脚本基本上检查列表1中的单词是否在列表2中(如果找到),该特定字符串应该从列表中的当前位置移动到结尾。但我现在能做的就是找到字符串及其索引。我不知道如何移动并将找到的字符串附加到列表的末尾。

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

谢谢!

3 个答案:

答案 0 :(得分: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 :(得分: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

答案 2 :(得分:-1)

这是一种方法:

for item in list1:
    if item in list2:
        list1.remove(item)
        list1.append(item)