递增嵌套列表

时间:2014-08-13 17:45:54

标签: python turtle-graphics

我在python中有一个我需要访问的嵌套列表。当我访问它时,我需要通过此列表增加我的方式。 例如:

list= [[100, 320,  440, 'style_F'], [130, 200, -420, 'style_A']]

这是一个位置和绘图风格列表。 我的代码是这样的:

def draw_buildings(list):
c=0
innerlist=list[c]
wide = innerlist[0]
height = innerlist[1]
xcoord = innerlist[2]
style = innerlist[3]

def draw(w,h,x,style):
 while c<len(list):
    draw(wide,height, xcoord, style)
    c+=1         

现在变量C确实增加了 - 但只有在循环遍历列表时 - 例如我添加命令

        print c
        print wide
        print height
        print xcoord
        print style

我会得到以下内容:

1
100
320
440
style_F
2
100
320
440
style_F

所以这个数字正在增加,但它没有通过嵌套列表

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

在您的代码中,您有

c = 0
innerlist = list[c]

这意味着innerlist总是最终成为外部列表的第一项。你真正想要的是每次更新值。此外,使用for循环而不是while循环 - 它更加pythonic:

注意:不要将list用作变量名 - 它是一个内置函数,不应该被覆盖 - 我改为命名变量outerlist

for innerlist in outerlist:
    wide, height, xcoord, style = innerlist # Yes, you can do that...
    draw(wide, height, xcoord, style)

作为奖励,您可以在此处使用*args

for innerlist in outerlist:
    draw(*innerlist)

答案 1 :(得分:0)

您可以像这样遍历列表:

for sublist in list:
    wide, height, xcoord, style = sublist
    print c
    print wide
    print height
    print xcoord
    print style