2017-04-21 9 views
0

初心者...文を取るしようとしている=「ミスを犯したことがない誰もが試したことがない」と:Pythonのリスト理解はどのように-へのPythonへ

  1. 変換文は
  2. 使用リストの内包表記を一覧表示します文字 'A、H、M'で始まる単語を含む新しいリストを作成します。
のstring.Splitを使用して一覧表示する文を変換することができ

string = "Anyone who has never made a mistake has never tried anything new" 
string.split() 
['Anyone', 'who', 'has', 'never', 'made', 'a', 'mistake', 'has', 'never', 'tried', 'anything', 'new'] 

リスト内包とが必要です。どこから始めるべきかわかりません。

+1

# string = "Anyone who has never made a mistake has never tried anything new" # string.split() listOfWords = ['Anyone', 'who', 'has', 'never', 'made', 'a', 'mistake', 'has', 'never', 'tried', 'anything', 'new'] listOfChars = ['a', 'h', 'm'] wordsBeginningWithAHM = [word for word in listOfWords if word[0] in listOfChars] print(wordsBeginningWithAHM) 

ができます:あなたが与えられたif条件を使用して、リストから項目をフィルタリングする方法のアイデアを得るホープここに](http://stackoverflow.com/questions/6475314/python-for-in-loop-preceded-by-a-variable/37869704#37869704) – SuperSaiyan

答えて

1

単語のリストがあり、「A」、「H」、または「M」で始まる単語を取得したいとします。だから、リスト内包してその状態を確認してください。

string = "Anyone who has never made a mistake has never tried anything new" 
words = string.split() 
ahm_words = [w for w in words if w.lower()[0] in 'ahm'] 

あなたの結果はahm_wordsです。

参照:https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions

+3

実際には有効な文字のリストも必要ありません。次のようにすれば十分です: 'ahm_words = [wのw wの場合w.lower()[0]の 'ahm'] ' –

+1

ありがとう!これは、あなたがどのようにそれについて行ったかを見るのに非常に役立ちました。 – Ray

1

Pythonの構文は、通常、コードの内容を理解するのに役立ちます。 [私の答えを見てください、あなたが開始する場所を知りたい場合は

['has', 'made', 'a', 'mistake', 'has', 'anything'] 
+0

「誰でも」が含まれていてはなりませんか? –

+0

@PaulRooneyは、 '誰でも' 'listOfChars'を' ['a'、 'h'、 'm'、 'A'、 'H'、 'M'] 'に拡張するだけです。私が理解している答えの目的は、リスト内包に向かって出発点を与えることです。結果リストが「正しい」かどうかは関係ありません。 OPがリストの理解を理解していれば、自分自身で正しく理解することが容易になります。 – Claudio

+0

ありがとうございます。 – Ray