Python:检查子字符串是否在字符串元组中

3

在一个字符串元组中,检查是否存在多个子字符串,最优雅的方式是什么?

tuple = ('first-second', 'second-third', 'third-first') 
substr1 = 'first' 
substr2 = 'second' 
substr3 = 'third'
#if substr1 in tuple and substr2 in tuple and substr3 in tuple:
#    should return True

3
不要使用“tuple”,这是Python的关键字。 - AChampion
1
@AChampion 这不是关键字。如果它是关键字,分配给它甚至都不会起作用。 - Stefan Pochmann
"tuple" 是一个内置函数 - 感谢您的纠正。 - AChampion
2个回答

5
any(substr in str_ for str_ in tuple_)

你可以从那里开始,同时查看all()

哈哈,这是打错字了。谢谢。 - s16h
我猜还有另一个字符串。 - Pavneet_Singh
那么 any(substr1 in str for str in tuple_) and any(substr2 in str for str in tuple_) and any(substr3 in str for str in tuple_) 是做这件事的首选方式吗? - John Alba
你可以使用all()一次性完成所有操作,而不是显式地使用and。就像AChampion在下面展示的那样。 - s16h
@AChampion 我认为 str 没那么糟糕,因为它只限于那个小的简单生成器。(不过我仍然不会这样做。) - Stefan Pochmann

2

您需要针对每个子字符串迭代元组,因此可以使用 anyall

all(any(substr in s for s in data) for substr in ['first', 'second', 'third'])

很好,我喜欢这个!谢谢。 - John Alba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接