我想使用 python 在列表中获取特定值

i want to get specific value in list using python

import netifaces as ni
temp=ni.interfaces()
print ni.ifaddresses(temp[0])
for a in ni.ifaddresses(temp[0]).iteritems():
    print a

下面是给我看的:

{-1000: [{'addr': '24:f5:aa:30:ff:ff'}], 2: [{'broadcast': '11.4.9.255', 'netmask': '255.255.255.0', 'addr': '11.4.9.22'}], 23: [{'addr': 'fe80::34cc:afcf:c9d6:e25c%11'}]}
(-1000, [{'addr': '24:f5:aa:30:ff:ff'}])
(2, [{'broadcast': '11.4.9.255', 'netmask': '255.255.255.0', 'addr': '11.4.9.22'}])
(23, [{'addr': 'fe80::34cc:afcf:c9d6:e25c%11'}])

但我只想获取像 24:f5:aa:30:ff:ff

这样的地址值

如何使用 python 获取列表中的特定值?

使用索引获取字典中 addr 的相关值:

for a in ni.ifaddresses(temp[0]).iteritems():
    print a[1][0]['addr']

尽我所能。

aux=[{-1000: [{'addr': '24:f5:aa:30:ff:ff'}], 2: [{'broadcast': '11.4.9.255', 'netmask': '255.255.255.0', 'addr': '11.4.9.22'}], 23: [{'addr':'fe80::34cc:afcf:c9d6:e25c%11'}]},
(-1000, [{'addr': '24:f5:aa:30:ff:ff'}]),
(2, [{'broadcast': '11.4.9.255', 'netmask': '255.255.255.0', 'addr': '11.4.9.22'}]),
(23, [{'addr': 'fe80::34cc:afcf:c9d6:e25c%11'}])]

import collections

def my_func(the_val):
        if not isinstance(the_val, collections.Iterable) or isinstance(the_val, str):
                return
        if isinstance(the_val, dict) and the_val.has_key('addr'):
                print "------------------->", the_val['addr']
        for e in the_val:
                if isinstance(the_val, dict):
                        my_func(the_val[e])
                        continue
                my_func(e)

my_func(aux)