我为我的模拟项目提供了一个Python脚本助手。我打印了一个列表print event.connection.features.ports
,如下所示:
[port_no: 65534
hw_addr: aa:20:20:40:f8:48
name: s9
config: 1
state: 1
curr: 0
advertised: 0
supported: 0
peer: 0
, port_no: 1
hw_addr: 36:7c:47:6d:ba:8c
name: s9-eth1
config: 0
state: 0
curr: 192
advertised: 0
supported: 0
peer: 0
]
这里的想法是这个列表对我来说看起来很奇怪!!我甚至不知道如何根据索引提取某个值,因为这里的索引不清楚(我假设这里只有2个索引,因为逗号可能是这里的分隔符)。根据给定的hw_addr
,我想要提取的值为port_no
。例如,如果我想要hw_addr
的{{1}},我尝试了类似port 1
的内容,但这并不起作用。我使用循环来循环遍历此列表,如下所示:
port_no[1][1]
此循环出现此错误!
for i in event.connection.features.ports:
if i.port_no == 1:
print i.port_no[1][1]
请说,有人可以暗示一下吗?谢谢
答案 0 :(得分:2)
我猜你的列表看起来很奇怪的原因是因为有人定义了__repr__
函数,因此定义了打印列表时如何打印元素。
我尝试了类似
port_no[1][1]
的内容。
如果有效,我会感到惊讶。 i.port_no
是基于您的测试成功的事实,可能是整数。你可能需要调用的是i.hw_addr
。如下所示:
for i in event.connection.features.ports:
if i.port_no == 1:
print i.hw_addr # not port_no[1][1]
#or do something else with hw_addr