python - 根据以一组子字符串中的一个结尾对 Python 列表进行切片

标签 python list

我有一个 python 列表

list1 = ['TC_TEST1', 'TC_TEST1_TEST2', 'TC_TEST3', 'TC_TEST1TEST2']

sublist1 = ['TEST1', 'TEST3']

期望的输出是

result = ['TC_TEST1', 'TC_TEST3']

它不应包含 sublist1 中出现在字符串中间或其他位置的模式。

我试过用

result = [s for s in list1 if any(xs in s for xs in sublist1)]

但这也会打印字符串中出现的任何模式,而不仅仅是结尾部分。

最佳答案

你可以试试这个:

list1 = {'TC_TEST1', 'TC_TEST1_TEST2', 'TC_TEST3', 'TC_TEST1TEST2'}
sublist1 = { 'TEST1', 'TEST3'}
final_list = [i for i in list1 if any(i.endswith(b) for b in sublist1)]

输出:

set(['TC_TEST3', 'TC_TEST1'])

元组的高级特性:

sublist1 = ('TEST1', 'TEST3')
final_list = [i for i in list1 if i.endswith(sublist1)]

关于python - 根据以一组子字符串中的一个结尾对 Python 列表进行切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47140688/

相关文章:

python - 根据年份和儒略日在 pandas 中创建日期时间

python - 将 Python Numpy 结构保存为 MySQL Blob

list - 按字典顺序创建值对 0 到 n-1 的列表

c - C语言从链表任意位置删除元素

list - 数学 : Determine if all integers in a list are less than a number?

Python 3.6 - 不要使用 Counter 在列表中包含重复值

python - 在不知道名称的情况下如何在另一个文件中找到并使用变量?

python - 2^n 具有高级过滤功能的 Itertools 组合

python - 将 x 轴设置为一组值的时间(年、月)

python - 如何在Python中从另一个字符串中检测一个字符串的重复元素?