msc*_*c87 0 python string for-loop
我有一个Python代码,想要在字符串中找到元音.我写的代码遵循....我尝试使用For-Loop的不同组合,但它抛出了两个不同的错误;
如何找到一行中的所有元音?
str1 = 'sator arepo tenet opera rotas'
vow1 = [str1[i] for i in str1 if str1[i] is 'a' | 'e' | 'o']
Run Code Online (Sandbox Code Playgroud)
关于什么:
vowels = [ c for c in str1 if c in 'aeo' ]
Run Code Online (Sandbox Code Playgroud)
你得到的错误,因为当你遍历一个字符串,你遍历所有的字符的字符串(不字符串中指数),也因为'a' | 'e' | 'o'
没有任何字符串的意义- (他们不支持的|
运营商)
>>> str1 = 'sator arepo tenet opera rotas'
>>> vowels = [ c for c in str1 if c in 'aeo' ]
>>> print vowels
['a', 'o', 'a', 'e', 'o', 'e', 'e', 'o', 'e', 'a', 'o', 'a']
Run Code Online (Sandbox Code Playgroud)
最后一条评论,你不应该is
用来测试平等. 身份is
测试.一个简单的测试:
a = 565
b = 565
print a == b #True
print a is b #False (!)
Run Code Online (Sandbox Code Playgroud)
原因是因为a
并且b
引用具有相同值的不同对象.