首页 > 解决方案 > 对于下面显示的情况,如何通过比较两个列表的元素字符串来创建新列表?

问题描述

我有两个清单 -

List1 = [abcde,fghij,klmno,pqrst,uvwxy]
List2 = [cde,ghij,no,pqr]

我想要的输出:List3 = [pqrst,uvwxy]

如您所见,List2 的元素是 List1 的某些元素的子字符串。但是子字符串应该匹配从右侧开始的字符。例如,虽然 List2 的 'pqr' 是 List1 的元素 'pqrst' 的子字符串,但 pqrst 有一个尾随字符 't',所以我想把它放到另一个列表中。我想比较两个列表并获得一个新列表,比如包含 = [pqrst,uvwxy] 的 List3。

使用 python 的最佳方法是什么。

标签: pythonlist

解决方案


在这种情况下,您可以使用endswith简单的循环。

list1 = ['abcde','fghij','klmno','pqrst','uvwxy']
list2 = ['cde','ghij','no','pqr']
list3 = []
for i in list1:
    bool1 = 0
    for j in list2:
        if i.endswith(j): bool1 = 1
    if not bool1: list3.append(i)

print(list3)    # output:  ['pqrst', 'uvwxy']

推荐阅读