Python—始终将某些字符串附加到列表的末尾
我遇到了困难,需要一些帮助或建议才能渡过难关 我想将某些字符串始终apppend附加到列表的末尾 所以我们有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中,如果找到,则该特定字符
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