我很難搞清楚如何從嵌套列表中刪除某些東西。Python:從嵌套列表中刪除單個元素
例如,我將如何從下面的列表中刪除'x'?
lst = [['x',6,5,4],[4,5,6]]
我試過del lst[0][0]
,但我得到以下結果:
TypeError: 'str' object doesn't support item deletion.
我也試過一個for循環,但得到了同樣的錯誤:
for char in lst:
del char[0]
我很難搞清楚如何從嵌套列表中刪除某些東西。Python:從嵌套列表中刪除單個元素
例如,我將如何從下面的列表中刪除'x'?
lst = [['x',6,5,4],[4,5,6]]
我試過del lst[0][0]
,但我得到以下結果:
TypeError: 'str' object doesn't support item deletion.
我也試過一個for循環,但得到了同樣的錯誤:
for char in lst:
del char[0]
你的代碼工作正常。你確定lst
被定義爲[['x',6,5,4],[4,5,6]]
?因爲如果是這樣,del lst[0][0]
有效刪除'x'
。
也許你已經定義了lst
爲['x',6,5,4]
,在這種情況下,你確實會得到你提到的錯誤。
在嵌套列表上使用pop(i)
函數。例如:
lst = [['x',6,5,4],[4,5,6]]
lst[0].pop(0)
print lst #should print [[6, 5, 4], [4, 5, 6]]
完成。
'del lst [0] [0]'也適用。假設JG是正確的(我能想到的唯一合理的解釋),兩者都將以OP的真實代碼失敗。 – delnan 2011-03-13 21:54:01
您還可以使用「流行」。例如,
list = [['x',6,5,4],[4,5,6]]
list[0].pop(0)
將導致
list = [[6,5,4],[4,5,6]]
看到這個線程更多:How to remove an element from a list by index in Python?
這兩種工作只是爲我好,因爲我期望。檢查這是否真的是你的代碼。 – delnan 2011-03-13 21:36:16
有趣的是,默認的語法高亮器將'char'視爲Python特有的東西,因爲它是藍色的。沒有內置函數叫做char,既不是關鍵字。 – 2011-03-13 21:57:25
@Maciej:語法高亮器不是Python特有的。 – katrielalex 2011-03-13 23:52:48