【发布时间】:2018-08-25 19:39:27
【问题描述】:
我有这个清单:
n = ['FAKE0.0.1.8', '10.2.2.22', '10.2.182.10', '10.2.20.5', '10.2.94.135', '10.2.110.1', '10.2.94.73', '10.2.20.1', '10.2.94.38', '10.2.94.37', '10.2.7.121']
还有这本词典:
i = {'10.2.94.38': {'area': '0.0.1.8'}}
如您所见,列表中只有一项,它是字典的有效键:10.2.94.38。
如果我执行以下操作,我可以获得内部字典{'area':'0.0.1.8'}:
>>> [i.get(x,'NA') for x in n]
['NA', 'NA', 'NA', 'NA', 'NA', 'NA', 'NA', 'NA', {'area': '0.0.1.8'}, 'NA', 'NA']
如果我执行以下操作,我可以像往常一样获得值0.0.1.8:
>>> i[n[8]]['area']
'0.0.1.8'
我面临的问题是我无法达到终极价值0.0.1.8。我尝试了以下方法但没有成功:
>>> [i.get(x['area'],'NA') for x in n]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <listcomp>
TypeError: string indices must be integers
我该怎么做?我想要达到的最终结果是:
['NA', 'NA', 'NA', 'NA', 'NA', 'NA', 'NA', 'NA', '0.0.1.8', 'NA', 'NA']
谢谢!
卢卡斯
【问题讨论】:
-
x是x['area']的字符串,而不是字典 -
我不关注。你能详细说明一下可能吗?
-
for x in n其中n是您的列表,x是列表项(字符串)
标签: python python-3.x list dictionary nested