我刚开始学习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?
答案 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")