我在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
感谢
答案 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