使if / in语句更清晰

时间:2017-03-24 03:53:30

标签: python if-statement

我刚开始学习python,我遇到了这个练习。我找到了一种方法,但我不认为这是最好的方法。这就是我现在所拥有的。

big_string = input("Enter a string of lowercase letters: ")


if "a" in big_string or "e" in big_string or "i" in big_string or "o" in big_string or "u" in big_string:
    print "Contains a lowercase vowel!"
else:
    print "Doesn't contain a lowercase vowel"

有没有更好的方法来进行if / in?

5 个答案:

答案 0 :(得分:2)

如果不直接跳到正则表达式,你可以这样做:

if any(vowel in big_string for vowel in "aeiou"):

也就是说,扫描一个巨大的字符串可能比使用正则表达式扫描五倍更高,所以请考虑一个正则表达式:

import re

...

if re.search(r'[aeiou]', big_string):

答案 1 :(得分:0)

这个怎么样?

if any((c in big_string) for c in ['a', 'e', 'i', 'o', 'u']):
    ...

答案 2 :(得分:0)

您可以使用any(x in b for x in a)来确定列表a中的任何项目是否在列表b中。

在您的情况下,您可以执行以下操作:

if any(x in big_string for x in ["a", "e", "i", "o", "u"]):

答案 3 :(得分:0)

big_string = raw_input("Enter a string of lowercase letters: ")

chars = set('aeiou')

if any((c in chars) for c in big_string):
    print("Contains a lowercase vowel!")
else:
    print("Doesn't contain a lowercase vowel")

答案 4 :(得分:0)

如果答案如下,这是一个略有不同的单行:

print("Contains a lowercase vowel!" if any(vowel in bigstring for vowel in ['a', 'e', 'i', 'o', 'u'])
      else "Doesn't contain a lowercase vowel")