Python如何做。列表

时间:2017-07-20 14:06:59

标签: python list dictionary

我的python字典结构是这样的:

ips[host][ip]

每行ips [host] [ip]如下所示:

[host, ip, network, mask, broadcast, mac, gateway, ip_ver, status]

因此,密钥也存储在行中。这本字典经过大量处理,也可用于其他较重的处理。一旦这个字典被认为是final,我就必须将这些行输出到数据库。

输出优化和其他编程功能(如冲突处理)(例如,当存在主键冲突时自动执行的操作)使输出功能变得复杂。此外,输出函数还用于许多其他字典/表格。

输出函数需要一个列表,而不是字典(这就是为什么键也在ips字典中)。我发送到输出函数的所有其他字典都可以通过这样做来工作,因为它们是列表的字典:

locations = am_output.loc.values()

但是,这个ips字典是列表字典的字典。我认为这样可行:

ips = am_output.ips.values().values()

但我收到错误:

AttributeError: 'dict_values' object has no attribute 'values'

1 个答案:

答案 0 :(得分:2)

一个简单的列表理解就可以了:

[y for x in ips.values() for y in x.values()]

演示:

>>> ips = {'a' : {1: 2, 3: 4},
...     'b': {'a': 'b', 'c': 'd'}}
>>> [y for x in ips.values() for y in x.values()]
[2, 4, 'b', 'd']