如何访问嵌套字典Python中的元组的特定元素

时间:2014-01-24 20:20:18

标签: python

database={'PC2': 
['02:02:02:02:02:02', '192.168.0.2', '200', 
{'192.168.0.2': ('02:02:02:02:02:02', 1390555956.276)}], 
'PC1': ['01:01:01:01:01:01', '192.168.0.1', '200', 
{'192.168.0.2': ('02:02:02:02:02:02', 1390555956.276), 
'192.168.0.1': ('01:01:01:01:01:01', 1390555945.453)}]}

请注意,数据库[j] [3]是特定主机的缓存表的位置(它位于主要的“数据库”中)

k = "Enter <host_id>"
j = raw_input(k)
if j in database and database!={}:
    print database[j][3]

上面是我正在尝试的例子我输入PC1我正在输出:

{'192.168.0.2': ('02:02:02:02:02:02', 1390555956.276),
'192.168.0.1': ('01:01:01:01:01:01', 1390555945.453)}

但我想要这样的输出:

02:02:02:02:02:02      192.168.0.2
01:01:01:01:01:01      192.168.0.1

(在打印每个MAC(每个元组的第一个元素eg02:02:02:02:02:02)和高速缓存表中的IP之后,它也应该在下一行继续,然后打印下一个MAC和IP同一个PC的缓存表。)

请帮助。

1 个答案:

答案 0 :(得分:5)

对于Python 2:

>>> for ip, (mac, t) in database['PC1'][3].items(): print mac, ip
02:02:02:02:02:02 192.168.0.2
01:01:01:01:01:01 192.168.0.1

对于Python 3,我们需要添加括号:

>>> for ip, (mac, t) in database['PC1'][3].items(): print(mac, ip)
02:02:02:02:02:02 192.168.0.2
01:01:01:01:01:01 192.168.0.1