【问题标题】:Shortest way to check wether a list of strings occur in a string检查字符串列表中是否出现字符串的最短方法
【发布时间】:2019-10-03 13:24:40
【问题描述】:

我想知道检查列表中的所有字符串是否出现在另一个特定字符串中的最快或最短方法。
例如:

l = ['I','you']
s = ['I do like you']

在这种情况下,我想看看Iyou 是否都出现在I do like you 中。有单行吗?而不是 for 循环并以传统方式手动检查?

【问题讨论】:

  • all(w in s for w in l)?假设s 实际上是字符串'I do like you',而不是带有字符串的列表。如果s 是一个字符串列表,并且您想检查所有这些字符串,那么all(w in t for w in l for t in s)

标签: python string syntactic-sugar


【解决方案1】:

使用all(),如果可迭代的所有元素都是真值,则返回True,否则返回False

all(x in s[0] for x in l)

代码中:

l = ['I','you']
s = ['I do like you']

print(all(x in s[0] for x in l))
# True

【讨论】:

    【解决方案2】:

    您可以使用 all() 运算符,如果 Iterator 的每个元素都是 True 或为空,则返回 True

    l = ['I', 'you']
    s = 'I do like you'
    print(all(x in s for x in l))
    

    您可能会对any() 运算符感兴趣,如果至少有一个元素是True,它会返回True

    【讨论】:

      【解决方案3】:

      我猜你想要单词而不仅仅是字符串。用于此用途:

      all(_ in s[0].split() for _ in l)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-31
        • 2013-01-09
        • 1970-01-01
        • 1970-01-01
        • 2013-04-29
        • 1970-01-01
        • 2018-06-24
        相关资源
        最近更新 更多