python - 查找二维列表中特定列的长度

标签 python list multidimensional-array multiple-columns content-length

在 Python 3 中,如果我有一个二维列表,其中最后一行未完全填写(如下示例),如何获取特定列的长度?

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

例如,第 0 列和第 1 列的长度为 3,但第 2 列的长度为 2。有没有办法在不使用 pandas 模块的情况下实现此目的?

最佳答案

如果某列在一行中的索引大于或等于该行的长度,则该列缺失。也就是说,如果一行只有 2 个元素,则存在第 0 列和第 1 列,但仅此而已。所以我们只需要统计长度大于索引的行数即可:

In [58]: L = [[1, 2, 3,], [4,], [7, 8,]]

In [59]: for row in L: print(row)
[1, 2, 3]
[4]
[7, 8]

In [60]: lens = [sum(len(row) > i for row in L) for i in range(max(map(len, L)))]

In [61]: lens
Out[61]: [3, 2, 1]

In [62]: L = [[1, 2, 3,], [4, 5, 6,], [7, 8,]]

In [63]: lens = [sum(len(row) > i for row in L) for i in range(max(map(len, L)))]

In [64]: lens
Out[64]: [3, 3, 2]

max(map(len, L)) 只是查找列数。如果您只关心查找特定的一列,则可以执行 sum(len(row) > column_number for row in L)

关于python - 查找二维列表中特定列的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51790944/

相关文章:

java - 为什么我无法在循环之外访问我的二维数组?

python - Python 中埃拉托色尼的高效筛法

python - 如何在 python 中使用 altair 包加载和绘制 csv 文件?

python - 使用csv从mysql数据库导出数据

python - 使用数组数据遍历 2 个列表

c++ - 使用 std::multimap 迭代器创建 std::list

javascript - 使用 JAVASCRIPT 从 HTML 上的 JSON 数组读取数据

python - 在不使用数据帧的情况下匹配键并在 pyspark 中加入 2 个 RDD

c# List<T> 排序 : by Chinese strokes

c++ - 如何将 3 维数据用作类属性?