2012-04-13 6 views
4

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

は、関数呼び出しがここにあなたが必要なものの要旨だように見えるし、その出力

>>> 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'], []) 
>>> 
+0

+1実際にどのように動作するかを示すための入力例と出力例とともに、明確な説明を投稿します。私たちに来る前にあなたがどのような研究を行ったかを実証していないからです。しかし、良いスタート。 –

答えて

8

する方法を次のとおりです。

>>> 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ループを書くことができますか? "STARTSWITH" 文字列メソッドの
+3

Natch、これはおそらく宿題だったので、私はこれに多くの答えを与えるべきではありませんでした。将来、このレベルの助けを得る前に、あなた自身の問題を解決しようとしたことを実証することが期待されます(「何を試しましたか?」)。 –

10

チェックPythonのドキュメント: http://docs.python.org/library/stdtypes.html#str.startswith

str.startswith 戻り文字列がで を真開始した場合(接頭辞[、[、終了]を起動])他の場合はFalseを返します。接頭辞は接頭辞の のタプルでもあります。オプションの開始で、テスト文字列は で始まります。オプションの終了では、その文字列の比較を停止します。

バージョン2.5で変更:接頭辞としてタプルを受け入れます。

+1

ああ、それは確かに良い解決策です。 +1。 (CとMATLABから来て、「開始」の代わりに配列の索引付けに関してすべてを考えています。) –

関連する問題