所以我知道,要得到一個專欄中,我不得不寫如何將列表的後半部分列表爲列表?
a = list(zip(*f)[0])
和產生的將是包含在列表中的第一個元素爲f的列表。
我該如何做到每個列表獲取多個元素?我試圖
a = list(zip(*f)[1:19])
,但它只是返回一個列表的列表,其中內部列表是由每一個列表中的第i個元素。
所以我知道,要得到一個專欄中,我不得不寫如何將列表的後半部分列表爲列表?
a = list(zip(*f)[0])
和產生的將是包含在列表中的第一個元素爲f的列表。
我該如何做到每個列表獲取多個元素?我試圖
a = list(zip(*f)[1:19])
,但它只是返回一個列表的列表,其中內部列表是由每一個列表中的第i個元素。
簡單的方法是不要使用zip()
。相反,使用list comprehension:
a = [sub[1:19] for sub in f]
如果它實際上是你正在尋找下半年:
a = [sub[len(sub) // 2:] for sub in f]
,其中將包括在[1, 2, 3, 4, 5]
的3
。如果你不想包括它:
a = [sub[(len(sub) + 1) // 2:] for sub in f]
你應該更喜歡@ zondo的解決方案的性能和可讀性。然而,zip
基礎的解決方案是可能的,看上去就像這樣(在Python 2):
zip(*zip(*f)[1:19])
你不應該考慮拆包,荏苒,切片,拆包並重新荏苒中,雖然任何嚴重的代碼,這個週期; )
在Python 3中,您必須將zip
結果同時投射到list
,這使得它更沒有性感。
@zondo有效的一點!增加了一些資格。 – schwobaseggl