提取不熟悉列表的值

时间:2017-01-21 20:50:10

标签: python

我为我的模拟项目提供了一个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]

请说,有人可以暗示一下吗?谢谢

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