python - 追加到行/列长度未知的 python 中的二维列表

标签 python list grid 2d append

我想翻转二维列表中的行和列,但遇到了麻烦。 Python 不允许将值分配给未初始化的“单元格”。我不确定如何初始化我的网格,因为我不知道提前的长度。以下内容:

data = list()
maReader = csv.reader(open('TEST.csv', 'rb'), delimiter=',', quotechar='"')
for rindex, row in enumerate(maReader):
    for iindex, item in enumerate(row):
        data[iindex][rindex] = item

失败并出现“IndexError:列表分配索引超出范围”错误。我可以循环两次,第一次对列和行进行计数,然后初始化网格,然后再次循环并分配值,但这看起来非常浪费。

我是 Python 的新手,我想有一种简单的方法可以做到这一点,但我缺少这种方法。

感谢您的帮助。

最佳答案

这是一个 EAFP与@retracile 的 LBYL 相对应方法。

data = [] #list()
maReader = csv.reader(open('TEST.csv', 'rb'), delimiter=',', quotechar='"')
for rindex, row in enumerate(maReader):
    for iindex, item in enumerate(row):
        try:
            data[iindex].append(item)
        except IndexError:
            data.append([item])

关于python - 追加到行/列长度未知的 python 中的二维列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896008/

相关文章:

python - 根据其他列值创建一个新列 - 条件前向填充?

python - 使用 Python 按列名更新 CSV 文件

python - 如何从集合中获取列表?

C:使用列表的数组的最后一个元素

c# - 如何为所有网格行设置最小高度?

python - os.walk 爬取文件夹结构

python - 如何将字典的键与字符串字符进行比较

c++ - C++ 中的自定义 list.sort 比较

c# - WPF - 创建颜色网格

java - Canvas 中的网格,最后一个单元格的大小与其他单元格不同