我的代码是这样的:
j=0
list1=[]
for port in portlist1:
l=[[port.getname(),port.getsize()]]
for register in port.getregisters():
j=j+1
l.append(j)
list1.append(l)
j=0
输出打印列表1是:
[[['B', 10], 2], [['C', 25], 1], [['F', 30], 0]]
如果我想使用函数
,我应该做些什么改变 register.getaddress(),register.getdirection() inside 2nd for loop instead of increment j.
所以我的输出应该是:
print list1: [[['B', 10], [['1000',IN],['1',OUT]]], [['C', 25], ['v', 1001]], [['F', 30], []]]
print list1[0]: [['B', 10], [['1000',IN],['1',OUT]]
print list1[0][1]: ['1000',IN],['1',OUT]
答案 0 :(得分:0)
我认为你可以用列表理解来做到这一点:
list1 = []
for port in portlist1:
l = [[port.getname(),port.getsize()],
[[register.getaddress(), register.getdirection()]
for register in port.getregisters()]]
list1.append(l)
但是,这会给你一个噩梦般的深层嵌套列表。我认为Babu关于使用字典的评论是正确的。以下是您可以通过这种方式改进的方法:
dict1 = {}
for port in portlist1:
dict1[port.getname()] = {"size": port.getsize(),
"registers": {register.getaddress(): register.getdirection()
for register in port.getregisters}}