0

Pythonのコードがあり、文字列内の母音を検索したいと思います。私が書いたコードは次のとおりです....For-Loopを使用するためにさまざまな組み合わせを試しましたが、2つの異なるエラーがスローされます。

  1. 'int'オブジェクトは反復可能ではありません。
  2. 文字列インデックスは、strではなく整数である必要があります。

どうすれば一列にあるすべての母音を見つけることができますか?

str1 = 'sator arepo tenet opera rotas'
vow1 = [str1[i] for i in str1 if  str1[i] is 'a' | 'e' | 'o']
4

3 に答える 3

7

どうですか:

vowels = [ c for c in str1 if c in 'aeo' ]

文字列をループすると、文字列内の文字(文字列インデックスではない)がループし、文字列には意味がないため、エラーが発生します-(演算子'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']

最後のコメントですが、同等性isをテストするために使用するべきではありません。 アイデンティティのテスト。簡単なテスト:is

a = 565
b = 565
print a == b #True
print a is b #False (!)

その理由は、同じ値を持つ異なるオブジェクトをa参照bしているためです。

于 2012-10-30T15:11:51.513 に答える
2

このコードを試してください:

str1 = 'sator arepo tenet opera rotas'
i=0
vowl=''
for char in str1:
    if char in 'aeiouAEIOU':
          vowl=vowl+char+','

vowl=vowl[:-1]      
print (vowl)

出力は次のとおりです。

a、o、a、e、o、e、e、o、e、a、o、a

于 2012-10-30T15:36:05.180 に答える
0
In [1]: str1 = 'sator arepo tenet opera rotas'
In [2]: filter(lambda x: x in 'aeiou', str1)
Out[2]: 'aoaeoeeoeaoa'
于 2012-10-30T21:00:03.753 に答える