如果您只想知道中是否包含的 任何 项,就像您直白地说:
d``paid[j]
if any(x in paid[j] for x in d): ...
如果您还想知道中包含 哪些 项目:
d``paid[j]
contained = [x for x in d if x in paid[j]]
contained会如果没有的项目一个空的列表
d中包含的
paid[j]。
如果您想要的是另一种选择,那么还有其他解决方案,例如,将的 第一 项
d包含在中
paid[j](并且
None如果没有这样的项):
firstone = next((x for x in d if x in paid[j]), None)
顺便说一句,由于在注释中您提到了句子和单词,也许您不一定要进行 字符串 检查(这是我所有示例所要做的),因为它们无法考虑单词边界-
例如,每个示例都会说’cat’是
in‘obfuscate’(因为’obfuscate’包含’cat’ 作为子字符串
)。为了允许检查单词边界,而不是简单的子字符串检查,您可以有效地使用正则表达式…但是我建议您就此提出一个单独的问题,如果这是您需要的,那么此答案中的所有代码段都取决于根据您的确切要求,如果将谓词更改
xinpaid[j]为更复杂的谓词(例如,
somere.search(paid[j])针对适当的RE对象),则将同样有效
somere。(Python2.6或更高版本-在2.5及更低版本中略有不同)。
如果您的意图又是另外一回事,例如获得满足您约束条件的项中的一个或所有
索引
d,那么对于这些不同的问题也有简单的解决方案…但是,如果您实际需要的内容与实际情况相去甚远你所说的,我最好不要再猜测了,希望你能澄清;-)。



