簡體   English   中英

Python:按索引刪除列表中的項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM