2016-06-20 4 views
-1

コドン文字の入った文字列では、次のプログラムが明示的に行っていることを理解できません。私はそれが全体の文字列を通過することを知っているが、正確に何をしているのですか?Python:プログラムを翻訳する

s = "AVGGGKGDEMAWTWVRPMGVIDWEEGGVKLVAGLLP" 

[i for i in range(1,len(s)) if s[i] in 'VE' and s[i-1]!= 'W'] ? 

応答は[5,28]です。

+2

それがWではありません前に現在の文字は、その文字のインデックス(位置)を保存し、VまたはEと1のどちらかである場合。再度実行してみてください。私が得る応答は '[1、8、19、24、27、30]'です。 – pushkin

+0

ありがとうございました!あなたは正しい...私は間違った文字列を貼り付けてコピーする...私は運動しようとしていたと私は別のものを入れます。あなたが正しいです。それは答えです。 –

答えて

1

このリスト内包表記は、文字列s一度インデックスとチェックの2つの条件を通過:

  • は、文字列'VE'のインデックスiの文字ですか?
  • インデックスの文字の前の文字はiで、'W'と等しくないのですか?

Trueの場合は、iが新しいリストに追加されます(この例では保存されません)。

出力は、インデックス5とインデックス28の文字がこれらの条件を満たしていることを示しています(出力はこの文字列に対して正しいとは思われません)。文字列がインデックスされていることを覚えておいてください。つまり、文字列の最初の文字にはs[0]でアクセスします。

追加情報:

+0

ありがとうございました!あなたは正しい...私は間違った文字列を貼り付けてコピーする...私は運動しようとしていたと私は別のものを入れます。 –

+0

この回答が役に立った場合は、答えとして受け入れることを検討してください。これを行うには、チェックマークをクリックします。 – IanAuld