Python元组列表的dict。从元组打印元素列表

时间:2013-11-22 15:06:31

标签: python dictionary

我在python中有一本词典,如:

{1: [('type', 'USB'), ('ipaddress', '192.168.1.1'), ('hostname', 'hello'), ('realname', 'world')], 2: [('type', 'Stereo'), ('ipaddress', '192.168.1.2'), ('hostname', 'hi'), ('realname', 'mum')]}

如何按照主机名的键顺序(1,2等)打印列表,以便输出为:

hello
hi

感谢

2 个答案:

答案 0 :(得分:1)

这似乎是这样做的:

>>> d = {1: [('type', 'USB'), ('ipaddress', '192.168.1.1'), ('hostname', 'hello'), ('realname', 'world')], 2: [('type', 'Stereo'), ('ipaddress', '192.168.1.2'), ('hostname', 'hi'), ('realname', 'mum')]}

>>> for i in sorted(d.keys()):
    ...     print d[i][2][1]
    ... 
    hello
    hi

你基本上做的是选择字典键,对它们进行排序,然后使用它们按顺序从字典中打印主机名元组。

(我假设('hostname',string)元组总是在同一个位置)

答案 1 :(得分:1)

这是一个将内部对列表转换为字典的解决方案。这样做的好处是,无论 hostname 条目的位置如何,它都能正常工作:

>>> for order, pairs in sorted(d.items()):
        print dict(pairs)['hostname']


hello
hi