我有一个python列表
list1 = ['TC_TEST1', 'TC_TEST1_TEST2', 'TC_TEST3', 'TC_TEST1TEST2']
sublist1 = ['TEST1', 'TEST3']
期望输出为
result = ['TC_TEST1', 'TC_TEST3']
它不应该包含子列表1中出现在字符串中间或其他位置的模式。你知道吗
我试过用
result = [s for s in list1 if any(xs in s for xs in sublist1)]
但这也会打印出字符串中出现的任何模式,而不仅仅是结束部分。你知道吗
不要在中使用而是使用endswith()函数,所以只要用
result = [s for s in list1 if any(s.endswith(xs) for xs in sublist1)],
替换result = [s for s in list1 if any(xs in s for xs in sublist1)]
。你知道吗你可以试试这个:
输出:
元组高级功能:
首先,您需要注意,您没有定义python列表,但是设置了。这些是从定义的集合派生的等价列表(注意
[]
表示法):如果需要筛选仅以可能的子字符串列表结尾的字符串,可以调用Python字符串的
endswith
方法,将字符串元组作为参数传递。这样,可以使用以下表达式导出所需的输出:实际输出为:
相关问题 更多 >
编程相关推荐