0
List1 = ['RELEASE', 'KM123', 'MOTOR', 'XS4501', 'NAME']

List2 = ['KM', 'XS', 'M']

现在我使用的代码只在 List1 中的任何位置搜索 List2。

Result = [ s for s in List1 if any(xs in s for xs in List2]

输出 :

[KM123', 'MOTOR', 'XS4501', 'NAME']

但我不希望“NAME”出现在列表中,因为它包含“M”而不是开头。任何帮助...

4

2 回答 2

2

使用str.startswith()which 检查字符串是否以特定的字符序列开头:

[s for s in List1 if any(s.startswith(xs) for xs in List2)]
于 2020-07-15T12:14:49.040 回答
0

看起来你可以使用str.startswith

前任:

List1 = ['RELEASE', 'KM123', 'MOTOR', 'XS4501', 'NAME']
List2 = ('KM', 'XS', 'M')                                 #convert to tuple
result = [ s for s in List1 if s.startswith(List2)]
print(result)   #-->['KM123', 'MOTOR', 'XS4501']
于 2020-07-15T12:13:31.813 回答