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的缓存表。)
请帮助。
答案 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