繁体   English   中英

从循环创建多个列表

[英]Creating multiple list from loops

我想用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]

有人可以帮我吗?

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

目前尚不清楚循环之前j的值是什么,但是看起来您正在使用它来测量port.getregisters()的长度。 尝试以下这种方法:

result = [[[port.getname(), port.getsize()], len(port.getregisters())] for port in portlist1]

每次创建一个新列表都是一个坏主意,您应该嵌套每个列表。 如果端口数量是静态的,则可以使用vars()['listX'] ..但仍不建议这样做。 您应该选择kroolikalecxe给出的答案

但是,如果您真的需要像这样的东西:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM