Как извлечь определенные элементы из списка ключей словаря - PullRequest
0 голосов
/ 27 января 2019

Как я могу получить одно значение для каждого из этого многомерного массива в 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 голосов
/ 28 января 2019

ожидаемый результат должен быть: section_001 section_002 для каждого массива

В Python3 вы не можете нарезать представление , например dict.keys так же, как list.Но вы можете использовать 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']]
0 голосов
/ 28 января 2019

Если присвоить его x, а затем напечатать x[0], получится единственное значение.

Пожалуйста, измените свой вопрос.

На данный момент вы не указали нам подробностина dict_keys.Вам может пригодиться https://stackoverflow.com/help/mcve.

В процессе отладки вам также может пригодиться симпатичный принтер:

import pprint
pprint.pprint(x)
...