如何从字典键列表中提取特定项目

时间:2019-01-27 18:22:48

标签: python python-3.x list dictionary slice

如何在Python中为每个多维数组获取单个值。我尝试使用for循环进行打印。

[dict_keys(['section_001', 'section_002', 'section_003']), dict_keys(['section_001', 'section_002', 'section_003']), dict_keys(['section_001', 'section_002', 'section_003']), dict_keys(['section_001', 'section_002', 'section_003']), dict_keys(['section_001']), dict_keys(['section_001']), dict_keys(['section_003', 'section_004', 'section_007', 'section_008', 'section_002', 'section_006', 'section_005', 'section_001']), dict_keys(['section_003', 'section_004', 'section_007', 'section_008', 'section_002', 'section_006', 'section_005', 'section_001']), dict_keys(['section_001', 'section_002', 'section_003']), dict_keys(['section_001', 'section_002', 'section_003'])]

预期结果应该是:

section_001
section_002

每个数组。

2 个答案:

答案 0 :(得分:2)

  

预期结果应为:每个数组的section_001 section_002

在Python3中,您无法以与list相同的方式对view之类的dict.keys进行切片。但是您可以使用itertools.islice来切片任何可迭代的结果,并将结果提供给list。这是一个演示:

from itertools import islice

d = dict.fromkeys([f'section_00{i}' for i in range(1, 4)])
L = [d.keys() for _ in range(3)]

res = [list(islice(x, 0, 2)) for x in L]

# [['section_001', 'section_002'],
#  ['section_001', 'section_002'],
#  ['section_001', 'section_002']]

答案 1 :(得分:1)

将其分配给x,然后打印x[0]将得到一个值。

请修改您的问题。

就目前而言,您还没有向我们提供dict_keys上的详细信息。您可能会发现https://stackoverflow.com/help/mcve会有所帮助。

在调试过程中,您可能还会发现漂亮打印机有用:

import pprint
pprint.pprint(x)