Как получить вторую позицию объекта словаря по умолчанию? - PullRequest
0 голосов
/ 24 октября 2018

Я извлекаю некоторые значения из словаря, чтобы создать следующий словарь следующим образом:

from collections import defaultdict

a_lis = []
b_lis = []
for d in response['A']:
    a_lis.append(d['B'])
    b_lis.append(d['C'])
print(a_lis)
print(b_lis)

defaultdict(None, zip(a_lis,b_lis))

Я решил использовать dict по умолчанию, потому что я хотел бы иметь повторяющиеся элементы внутри моего окончательного словаря.Однако, когда я запускаю приведенный выше код, я получаю это:

defaultdict(None,
            {'Fruit': 'PAR',
             'Brand': 'best',
             'date': 'imorgon',
             'type': 'true',
             'class': 'Första klass',
             'time': '2018-10-25',
             'number': 10})

Как я могу взять второй элемент кортежа, чтобы получить только:

            {'Fruit': 'PAR',
             'Brand': 'best',
             'date': 'imorgon',
             'type': 'true',
             'class': 'Första klass',
             'time': '2018-10-25',
             'number': 10}

Я пытался:

defaultdict(None, zip(a_lis,b_lis))[1]

Однако это не работает

1 Ответ

0 голосов
/ 24 октября 2018

Нет «второго элемента», на самом деле нет кортежа.Это просто представление defaultdict, который печатает значение по умолчанию, то есть None.Вы получаете доступ к диктовке, как и любой другой:

d = defaultdict(None,
        {'Fruit': 'PAR',
         'Brand': 'best',
         'date': 'imorgon',
         'type': 'true',
         'class': 'Första klass',
         'time': '2018-10-25',
         'number': 10})

print(d['Fruit'])  #  -> 'PAR'

(Хотя я не понимаю вашего обоснования использования defaultdict здесь; так как по умолчанию используется значение None, это совсем не поможет вам иметь 'повторяющиеся элементы '.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...