我想用for循环创建多个列表,我的代码是:
for port in portlist1:
print port.getname(),port.getsize()
for register in port.getregisters():
j=j+1
print j
j=0
输出是:
B 10
1
C 15
1
F 30
1
我想每次都列出清单:
List1=[[B,10],1]
List2=[[C,15],1]
List3=[[F,30],1]
有人可以帮助我吗?
答案 0 :(得分:2)
lists = []
for port in portlist1:
l = [[port.getname(), port.getsize()]]
for register in port.getregisters():
j=j+1
l.append(j)
lists.append(l)
j=0
答案 1 :(得分:2)
不清楚循环前j
的值是多少,但看起来你用它来衡量port.getregisters()
的长度。试试这个单行:
result = [[[port.getname(), port.getsize()], len(port.getregisters())] for port in portlist1]
答案 2 :(得分:1)
每次创建一个新列表是个坏主意,你应该只是嵌套每个列表。如果端口数量是静态的,您可以使用vars()['listX']
..但仍然没有真正推荐。您应该使用kroolik
或alecxe
但如果你真的需要像......那样:
List1=[[B,10],1]
List2=[[C,15],1]
List3=[[F,30],1]
您可以使用:
lname = "list"
for i,p in enumerate(portlist1):
j = len(p.getregisters())
vars()[lname+str(i)] = [(p.getname(),p.getsize()), j]
print list0
print list1
print list2