从循环创建多个列表

2024-09-22 16:29:36 发布

您现在位置:Python中文网/ 问答频道 /正文

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

有人能帮我吗?你知道吗


Tags: 代码inregister列表forportprintlist2
3条回答

每次都做一个新的列表是个坏主意,你应该只做每个列表的嵌套。如果端口数量是静态的,则可以使用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

不清楚循环之前j的值是多少,但看起来您正在使用它来测量port.getregisters()的长度。试试这一行:

result = [[[port.getname(), port.getsize()], len(port.getregisters())] for port in portlist1]
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

相关问题 更多 >