2016-05-18 4 views
-4

私は無慈悲にインターネットを検索しました。私はどこかに答えがあることを知っています。しかし、私はそれを見つけることができません。以下はコードです(一言で言えば、私のコードは格納された配列を数値に変換してからそれをテキストファイルとして保存します).3行目は私が理解できないコードです。誰もこのpythonコードの行を説明できますか? 'positions = [s inindex(x)+1 for x in s]'

私が理解できない行は「ポジション= [s.index(x)+1 for x]です。誰か説明してください。

+0

[これは宿題の質問です](http://stackoverflow.com/questions/37275889/python-controlled-assessment-task-2) –

答えて

3

それは

positions = [] 

for x in s: 
    positions.append(s.index(x)+1) 

s.index()と同等のリスト内包は、ある言葉sのリストに単語xの位置を返します。

同じ単語が複数回出現すると、すべてその単語の最初のインデックスを指します。例えば"ASK"の2番目の出現は、依然として1を指します。

+0

これは 'range(1、len(s)+ 1)'とどう違うのですか?おそらくOPの意図は重複を正確に検出することでした。 – rodrigo

+0

ありがとうございました!これは本当に助けになった!! – jawascript

+0

この回答に正しいとマークしていただけますか? –

0

人間に高翻訳されていれば、文章の各単語の位置(+1)をpositions配列に置くことを意味します。

positions = LET位置があること:
[s.index(x)sxのインデックス、またはsentence.split()
+1インデックスは、ほとんどの言語
for x in s]に0からスタートし、そうであるように、インデックスに1を追加これはsのすべての要素に対してです。

それはのようなものに見えた場合、コードは立派になります

splitsentence = sentence.split()
positions = splitsentence.index(word)+1 for word in splitsentenceを。

長くても読みやすい。

+0

ありがとう、私はこれを自分のコードに組み込みます。 – jawascript

+0

変数名をできるだけわかりやすいものにするようにしてください。これは多くの助けとなり、コードが大きくなったときには重要です。 – c0derabbit

関連する問題