python - 检查所有i的条件是否为真

时间:2016-04-09 03:33:05

标签: python

我想看看是否有一个Python等同于“for all”(cf https://en.wikipedia.org/wiki/List_of_mathematical_symbols)的数学概念,例如检查所有被评估实例的某些条件是否为True。

例如

假设:

word1 = 'pizza' 
word2 = 'piza'

我想检查'piza'中的每个字母是否都在'pizza'中,相反,如果'pizza'中的每个字母都在'piza'中。

有没有办法通过诸如for loop

之类的东西实现这一目标

e.g。 for letter in word1:

3 个答案:

答案 0 :(得分:1)

在您提供的示例问题中,我只是使用set来检查字符串是否包含来自另一个字符串的每个字母:

print set('pizza') == set('piza') # True, both strings have same set of letters
print set('pia') <= set('pizza') # True, 'pizza' contains all letters found in 'pia'
print set('pizza') <= set('pia') # False, 'pia' doesn't contain all letters found in 'pizza'

在一般情况下,我会像其他人建议的那样使用all

答案 1 :(得分:0)

使用生成器

我们可以使用与Python all结合的生成器来轻松实现这一目标。

word1 = 'piza'
word2 = 'pizza'

print(all(letter in word1 for letter in word2))
print(all(letter in word2 for letter in word1))

或扩展

扩展单行使得更容易看到发生了什么。该功能一直持续到word1中的所有字母为止,并检查它们是否在word2中。如果函数完成for loop,则表示word1中的所有字母都在word2中,因此它返回True。如果word1中有一封word2字母不在False,则会返回word1 = 'pizza' word2 = 'piza' def if_letters_in(word1, word2): for letter in word1: if letter not in word2: return False return True print(if_letters_in(word1, word2)) print(if_letters_in(word2, word1))

True
True

<强>输出

    videoView.setVideoPath(
            "http://trackfield.webcam.oregonstate.edu/axis-cgi/mjpg/video.cgi");

    videoView.start();

答案 2 :(得分:-1)

非匹配元素将添加到生成器中,使其非空,因此条件失败

nodeInterface