我想使用 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)
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)