在字典中排序mac地址?

时间:2014-02-26 15:30:55

标签: python

我正在阅读ifconig并想要提取接口和mac地址。我想将它们配对并按mac地址按升序排序。我这样做了:

import re, operator
f = open('ifconfig', 'r')

lis = f.read().split("\n")
interface_dict = {}
for l in lis: 
    l.strip()   
    if "eth" in l and re.search(r'\d\d:\d\d:(\S)', l):
        eth = re.search('(eth.+?)', l)
        mac =  re.search(r'\d\d:\d\d:(\S+)', l)
        if eth and mac:
            eth_num = eth.group(0)
            mac_add = mac.group(0)   
            interface_dict[eth_num] = mac_add

print interface_dict


sorted_interface = sorted(interface_dict.iteritems(), key=operator.itemgetter(1))

然而将它们放入dict似乎很愚蠢,然后我无法对它们进行排序,因为dict是无序的,我必须将它们放在元组列表中。最好的方法是什么,最初存储为元组列表,对它们进行排序并最终将它们添加到dict中?

1 个答案:

答案 0 :(得分:0)

使用zip.

>>> keys = ['a', 'b', 'c']
>>> values = [1, 2, 3]
>>> dictionary = dict(zip(keys, values))
>>> print dictionary
{'a': 1, 'b': 2, 'c': 3}

现在,您应该如何使用它,只需实施和改编它......