2010-12-12 11 views
2

私は最初の要素がないリストの要素を選択しようとしています。次のコードは動作しますが、私には一見醜いものになりますシンプルなpythonリストの理解の質問

[s[i] for i in range(len(s)) if i>0] 

もっと良い方法がありますか?ありがとう

答えて

11

スライス表記を使用します。

s[1:] 

また、あなたは、このようにリストをコピー避けることができます。

itertools.islice(s, 1, None) 

結果がリストではありません - それがために、ランダムアクセスをサポートしていません。インスタンスですが、イテレータを受け入れるものに渡すことができます。

+0

+1 fir 'islice'。 – delnan

+1

完全性のために、大きなリストの真ん中からスライスしたいときには、 'islice'は少し問題があります。それはイテレータを作成しますが、 'next'を呼び出すことによってスライスの先頭に移動します。 Pythonはリスト構造とデータをコピーするだけで済むので、スライシングは非常に高速です。 –

2

s[1:]は間違いありませんか?