我有這樣幾個列表:使用循環修剪名單
a = [1, 2, 3, 4, 5]
b = [4, 6, 5, 9, 2]
c = [4, 7, 9, 1, 2]
我想用一個循環,而不是作爲下面做修剪所有的人:
a[-2:]
b[-2:]
c[-2:]
我試過,但弄糊塗了通過價值傳遞或通過參考基礎知識,也看到其他問題,但沒有幫助。
感謝
我有這樣幾個列表:使用循環修剪名單
a = [1, 2, 3, 4, 5]
b = [4, 6, 5, 9, 2]
c = [4, 7, 9, 1, 2]
我想用一個循環,而不是作爲下面做修剪所有的人:
a[-2:]
b[-2:]
c[-2:]
我試過,但弄糊塗了通過價值傳遞或通過參考基礎知識,也看到其他問題,但沒有幫助。
感謝
for l in [a, b, c]:
del l[-2:]
這從每個列表中的最後兩個元素。如果你只想刪除所有,但最後兩個元素,這樣做:
for l in [a, b, c]:
del l[:-2]
有沒有必要擔心在這裏引用; for循環遍歷的列表包含對a
,b
和c
的引用,並且通過刪除列表片段來對每個列表進行就地變體。
x = [a, b, c]
x = map(lambda lst: lst[-2:], x)
在Python 3.x中,這會將迭代器存儲在'x'而不是另一個列表中(Python 3.x中的'map'返回迭代器)。 – 2010-06-16 16:40:41
刪除不需要的項目從現有列表,使用循環:
for list in [a, b, c]:
del a[:-2]
或者創建僅包含正確項新的列表,使用列表理解:
(a, b, c) = [x[-2:] for x in (a, b, c)]
什麼[-2:]錯了? – 2010-06-16 16:38:38