
複数の値を返す
関数は
1
つの値を返すように設計されていますが、複数の値を返さなくてはいけないこともありま
す。複数の値を返す唯一の方法は、複数の値を
1
つのデータ構造にまとめてそのデータ構造を返すこと
です。すると、やはり
1
つのものを返していますが、複数のデータとなり得ます。
次は関数の現在の状態です。ブール値を
1
つ(つまり、
1
つのもの)を返します。
def search4vowels(word):
"""
母音が見つかったかどうかによってブール値を返す。
"""
vowels = set('aeiou')
found = vowels.intersection(set(word))
return bool(found)
少し変更しただけで、関数がブール値ではなく(
1
つの集合内の)複数の値を返すようになりました。
あとは
bool
の呼び出しを取り除くだけです。
def search4vowels(word):
"""
指定された単語内の母音を返す。
"""
vowels = set('aeiou')
found = vowels.intersection(set(word))
return found
不要な
found
変数を取り除くと、上の
4
行目と
5
行目をまとめて
1
行にできます。
intersection
の結果を
found
変数に代入してから返すのではなく、直接
intersection
を返しています。
def search4vowels(word):
"""
指定された単語内の母音を返す。
"""
vowels ...