首页 > 解决方案 > Python - 删除二维列表中的列

问题描述

我有一个 2D list = [[1, 8, 3], [4, 5, 6], [0, 5, 7]],我想在循环中删除列。

例如,索引为 0(first) 和 2(last) 的列 - - 删除后的结果应该是:[8, 5, 5]. 有一个问题,因为当我删除第0列时,列表的大小减小到(0,1),并且第2个索引超出范围。在没有超出范围问题的情况下,在循环中删除列的最快方法是什么?

为了更好的图片:

[[1, 8, 3], 
 [4, 5, 6],
 [0, 5, 7]]

标签: pythonlistloopsiterationnested-lists

解决方案


除了遍历所有列表项并删除这些索引值之外,python 中没有这样的快捷方式。

但是,您可以使用用于其他目的但可以完成任务的 pandas。

import pandas as pd

s = [[1, 8, 3], [4, 5, 6], [0, 5, 7]]
df = pd.DataFrame(s,columns=['val1','val2','val3'])
li = df.drop('val1',axis=1).values.tolist()

现在李看起来像这样

[[8, 3], [5, 6], [5, 7]]

推荐阅读