2010-12-12 69 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 2010-12-12 21:58:34

+1

爲了完整起見,當你想從更大的列表中切出時,「islice」有點問題。它創建一個迭代器,然後通過調用'next',可能多次,走到片的起點。切片速度非常快,因爲Python只需複製列表結構而不需要數據。 – 2010-12-12 23:12:24

2

會不會s[1:]是正確的?