【发布时间】:2014-02-03 01:00:26
【问题描述】:
如何使用 GSpread 或 XLWT 从这个子列表列表中创建一个表格数据结构,其中索引 0 处的每个项目都在第一列,索引 1 处的每个项目都在第二列,等等?
例如,我想将以下列表中的所有 a 放入 column1,将所有 b 放入 column2,等等。换句话说,我只希望一个单元格有一个值,所以我想要 'a ' 在第一列的第一个单元格中,'aa1' 在第一列的第二个单元格中,'aa2' 在第一列的第三个单元格中,等等
lst = [[['a','b','c'],['aa1','bb1','cc1'],['aaa2','bbb2','ccc2']],[['a','b','c'],['aa1','bb1','cc1'],['aaa2','bbb2','ccc2']]]
这就是我所拥有的,它使用了一个 for 循环,但我想知道是否有一种不同的方法可以创建一个 for 循环,这样我就不必为每个循环手动创建一个 for 循环额外的列。
gc = gspread.login('username', 'password')
sheet = gc.open("Curalate").sheet1
row = 1
for subsublist in lst[0]:
sheet.update_cell(1,row,subsublist[0])
row = row + 1
row = 1
for subsublist in lst[0]:
sheet.update_cell(2,row,subsublist[1])
row = row + 1
row = 1
for subsublist in lst[0]:
sheet.update_cell(,row,subsublist[2])
row = row + 13
另外,如果这是 xlwt,除了 sheet.udpate_cell 将被替换为 sheet.write 并且它是有组织的 sheet.write(row,column,datapoint) 而不是 (column, row, datapoint) 之外,它完全相同。
【问题讨论】:
-
我不确定我是否掌握了您最初列表的结构。多重嵌套有意义吗?特别是,您是否尝试为每个单元格累积多个值?
-
多重嵌套之所以重要,只是因为我想对多个工作表执行此操作,其中每个子列表都有自己的工作表,并且子列表中的每个子列表都有自己的列。不过,我不会在这里进入工作表,因为我第一个解决了多列问题。我只希望一个单元格有一个值,所以我想在第一列的第一个单元格中使用“a”,在第一列的第二个单元格中使用“aa1”,在第一列的第三个单元格中使用“aa2”,等等。我也会在上面澄清
标签: python list xlwt sublist gspread