我在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
所以这个数字正在增加,但它没有通过嵌套列表
任何帮助将不胜感激
答案 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