5

名前(文字列)のリストをパラメーターとして受け取る関数と、文字のリストを受け取る別のパラメーターを実装する必要があります。関数は、2番目のリストの文字で始まる最初のリストの名前を出力する必要があります。リストが空の場合、関数は何も出力しません。

関数呼び出しは次のようになり、その出力は次のようになります。

>>> selectSome(["Emma", "Santana", "Cam", "Trevor", "Olivia", "Arthur"], ['A', 'B', 'C', 'D', 'E', 'F'])
Emma
Cam
Arthur
>>> selectSome(["Holly", "Bowel", "champ", 'Fun', 'Apu'], ['a', 'F', 'C'])
champ
Fun
Apu

>>> selectSome([], ['a', 'b', 'c'])

>>> selectSome(['Eva', 'Bob'], [])
>>>
4

2 に答える 2

11

必要なものの要点は次のとおりです。

>>> names = ['Alpha', 'Bravo', 'Charlie', 'Delta', 'Echo', 'Foxtrot']
>>> first_letters = ['A','B','C']
>>> output_names = [name for name in names if (name[0] in first_letters)]
>>> output_names
['Alpha', 'Bravo', 'Charlie']

それを関数としてラッピングするのはあなた次第です。

理解度をテストします。

  1. この大文字と小文字を区別しないようにするにはどうすればよいですか?
  2. 3行目が何をしているのか分かりますか?(これはリスト内包表記と呼ばれます。)同等のforループを記述できますか?
于 2012-04-13T02:07:47.677 に答える
10

「startswith」文字列メソッドについては、Pythonのドキュメントを確認してください:http: //docs.python.org/library/stdtypes.html#str.startswith

str.startswith(prefix [、start [、end]]) 文字列がプレフィックスで始まる場合はTrueを返し、そうでない場合はFalseを返します。プレフィックスは、検索するプレフィックスのタプルにすることもできます。オプションの開始を使用して、その位置から文字列をテストします。オプションのendを使用して、その位置で文字列の比較を停止します。

バージョン2.5で変更:プレフィックスとしてタプルを受け入れます。

于 2012-04-13T02:44:15.630 に答える