Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—始终将某些字符串附加到列表的末尾_Python_List - Fatal编程技术网

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

Python—始终将某些字符串附加到列表的末尾,python,list,Python,List,我遇到了困难,需要一些帮助或建议才能渡过难关 我想将某些字符串始终apppend附加到列表的末尾 所以我们有 List1 = ["sony","cant recall","samsung","dont know","apple","no answer", "toshiba"] 接下来我们有另一个列表 List2 = ["dont know", "cant recall","no answer"] 这是我到目前为止所开发的。该脚本基本上检查列表1中的单词是否在列表2中,如果找到,则该特定字符

我遇到了困难,需要一些帮助或建议才能渡过难关

我想将某些字符串始终apppend附加到列表的末尾

所以我们有

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

谢谢

这里有一种方法:

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

您可以执行如下算法:

 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']
从列表中删除重复项作为副作用。不确定你是否想要它,但看起来像是假设的

要保持秩序:

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项(例如,请尝试使用列表1=[“索尼”、“无法回忆”、“不知道”、“三星”、“苹果”、“无答案”、“东芝”),则此选项无效。这不是最好的解决办法。
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