gpt4 book ai didi

python - 将字符串与列表中的所有值进行比较

转载 作者:IT老高 更新时间:2023-10-28 22:17:14 27 4
gpt4 key购买 nike

我正在尝试摸索python,并学习做事的最佳方法。我有一个字符串,我正在与另一个字符串进行比较以查看是否匹配:

if paid[j].find(d)>=0:
#BLAH BLAH

如果 d 是一个列表,那么查看paid[j] 中包含的字符串是否与 d 中的任何值匹配的最有效方法是什么?

最佳答案

如果您只想知道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] 中.

如果您想要的是另一种选择,还有其他解决方案,例如,获取 dfirst 项包含在 paid[j] (和 None 如果没有项目被如此包含):

firstone = next((x for x in d if x in paid[j]), None)

顺便说一句,因为在评论中你提到了句子和单词,也许你不一定想要一个 string 检查(这是我所有的例子都在做的),因为他们不能考虑单词边界——例如,每个例子都会说 'cat' 是 in “混淆”(因为,“混淆”包含“猫”作为子字符串)。为了允许检查单词边界,而不是简单的子字符串检查,您可以有效地使用正则表达式......但我建议您打开一个单独的问题,如果这是您需要的 - 此答案中的所有代码片段,取决于根据您的确切要求,如果您更改谓词 x in paid[j] 将同样有效到一些更复杂的谓词中,例如 somere.search(paid[j])对于合适的 RE 对象 somere .(Python 2.6 或更高版本 - 2.5 和更早版本略有不同)。

如果您的意图又是别的,例如获取 d 中的一个或所有 索引在满足您限制的项目中,对于这些不同的问题也有简单的解决方案......但是,如果您实际需要的与您所说的相差甚远,我最好停止猜测并希望您澄清;-)。

关于python - 将字符串与列表中的所有值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2783969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com