簡體   English   中英

如何從python中的列表中刪除列表元素?

[英]How to delete a list element from a list in python?

我有一個像這樣的清單清單:

 [[1, 'Reason', [('reason',), ('other_reason',)]], [2, 'other', [('dep',), 
('path',)]], [3, "foo", [('bar',), ('bar1',)]] ]

我在函數中有此列表,有時會按原樣返回它(一種編輯模式),而在(顯示詳細信息)模式下,將最后一個元素從最后一個位置更改為第一個位置,因此列表將像這樣:

 [ [1, "foo", [('bar',), ('bar1',)]], [2, 'other', [('dep',), ('path',)]], 
[3, 'Reason', [('reason',), ('other_reason',)]]]

我要刪除包含“原因”的列表(第一個示例中的第一個列表)。

我嘗試使用list.index('Reason')方法獲取索引,但由於'Reason'不是列表的元素,因此無法正常工作。

索引也不一樣,所以del list[0]不是一個好選擇

有任何想法嗎?

這個?

>>> l = [[1, 'Reason', [('reason',), ('other_reason',)]], [2, 'other', [('dep',), ('path',)]], [3, "foo", [('bar',), ('bar1',)]] ]>>>
>>> [e for e in l if 'Reason' not in e]
[[2, 'other', [('dep',), ('path',)]], [3, 'foo', [('bar',), ('bar1',)]]]
>>>

說明:這將從第一個列表構建一個新列表,將包含'Reason'元素之外的所有元素放入其中。

[l for l in list if not "Reason" in l]

讓我們假設“原因”更改,因此將其保留在變量remove中 下面的代碼處理現有列表

l = [[1, 'Reason', [('reason',), ('other_reason',)]], [2, 'other', [('dep',), ('path',)]], [3, "foo", [('bar',), ('bar1',)]]]

removal = 'Reason'

for idx, nest_list in enumerate(l):
    if nest_list[1] == removal:
        del l[idx]

# to change element to first pos
l.insert(0, l[-1])
del l[-1]

然后遍歷列表,查看子列表中位置1的項目是否匹配。 如果是這樣,請從列表中將其刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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