Loops 使用行的范围从数组填充wxGrid

Loops 使用行的范围从数组填充wxGrid,loops,wxpython,Loops,Wxpython,这应该很简单,但我正在努力让它工作: 我想用sqlite查询中的值填充网格 rowNum = 3 # This is from a 'select count' query row_num = range(rowNum) # This gives me [0, 1, 2] tbl = [('apple', 'fruit'), ('bacon', 'meat'), ('rose', 'flower')] # from another query for row in tbl:

这应该很简单,但我正在努力让它工作:

我想用sqlite查询中的值填充网格

rowNum = 3  # This is from a 'select count' query

row_num = range(rowNum)  # This gives me [0, 1, 2]

tbl = [('apple', 'fruit'), ('bacon', 'meat'), ('rose', 'flower')]   # from another query

for row in tbl:
    cells = row[0:2]
    for i in range(len(cells)):
    self.mygrid.SetCellValue(row_num, i, str(cells[i]))
这告诉我“重载1:参数1具有意外类型”列表

for a in row_num:
    for row in tbl:
        cells = row[0:2]
        for i in range(len(cells)):
        self.mygrid.SetCellValue(row_num[a], i, str(cells[i]))
这将在第1列中填充三行网格,第2列中填充“flower”


我知道这是一个简单的迭代问题,但我的大脑没有看到它。

在您的第一个代码块中,您可以设置CellValue(row_num…其中row_num始终是[0,1,2]

在第二个循环中,实际上有3个循环,最里面的循环总是将tbl中的所有行写入同一行(row_num[a]),最后一个循环保持不变

这个怎么样:

for (row_idx, row) in enumerate(tbl):
    for (col_idx, col) in enumerate(row[0:2]):
        self.mygrid.SetCellValue(row_idx, col_idx, str(col))