[英]Python: Remove items in list of list by index
在這里我想按索引刪除列表中的項目。 輸入為
li = [[1,2,3,4],[5,6,7,8]]
排除的輸出是
[[1,3,4],[5,7,8]]
我嘗試過的是
print [x.pop(1) for x in li]
您可以像這樣使用del
運算符:
for sublist in list:
del sublist[1]
您實際上刪除了給定索引中的項目,但打印出了錯誤的列表。 彈出項目后只需打印li
:
>>> [x.pop(1) for x in li]
>>> print li
但是,您真的必須使用列表推導嗎? 因為在列表.pop()
調用.pop()
會累積刪除的項並與它們一起創建一個新的,完全無用的列表。
相反,您可以執行以下操作:
>>> for lst in li:
... lst.pop(1)
pop
,就像del
一樣,更改基礎列表,因此您必須顯式循環遍歷子列表以刪除第二個元素,並且它們將顯示修改后的列表。
for l in li: del l[1]
print li
另一方面,如果您不想更改列表,而是直接打印結果,則可以使用列表理解:
print [ (l[:1] + l[2:]) for l in li ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.