在Python中从嵌套列表中移除列

2024-03-29 07:57:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要知道如何从嵌套列表中删除“列”来修改它。

说我有

L = [[1,2,3,4],
     [5,6,7,8],
     [9,1,2,3]]

我想删除第二列(所以值2,6,1)得到:

L = [[1,3,4],
     [5,7,8],
     [9,2,3]]

我一直纠结于如何修改列表,只需去掉一个列。我以前做过这样的事?但是我们打印出来了,当然在这种情况下不起作用,因为我相信中断与列表中的其他值冲突。

def L_break(L):

i = 0
while i < len(L):
    k = 0
    while k < len(L[i]):
        print( L[i][k] , end = " ")
        if k == 1:
            break
        k = k + 1
    print()
    i = i + 1

那么,如何修改这个嵌套列表呢? 我的想法是否与我发布的代码相比较,或者这需要一些不同的东西?


Tags: 代码列表lenifdef情况endprint
3条回答

您只需使用^{}从每一行中删除适当的元素:

L = [[1,2,3,4],
     [5,6,7,8],
     [9,1,2,3]]

for row in L:
    del row[1]  # 0 for column 1, 1 for column 2, etc.

print L
# outputs [[1, 3, 4], [5, 7, 8], [9, 2, 3]]

如果要在从原始列表中删除该列的同时,提取该列以供以后使用,请使用带有pop的列表理解:

>>> L = [[1,2,3,4],
...       [5,6,7,8],
...       [9,1,2,3]]
>>> 
>>> [r.pop(1) for r in L]
[2, 6, 1]
>>> L
[[1, 3, 4], [5, 7, 8], [9, 2, 3]]

否则,只需循环遍历列表并删除不再需要的字段,如arshajii's answer

使用map-lambda

print map(lambda x: x[:1]+x[2:], L)

相关问题 更多 >