3

我碰壁了,需要一些帮助或建议来帮助我度过难关。

我想附加某些字符串总是附加到列表的末尾。

所以我们有

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

谢谢!

4

3 回答 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']
于 2013-06-20T14:20:06.943 回答
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
于 2013-06-20T14:22:15.933 回答
-1

这是一种方法:

for item in list1:
    if item in list2:
        list1.remove(item)
        list1.append(item)
于 2013-06-20T14:19:25.267 回答