Диктофон Python списков вниз, чтобы диктовать отдельных элементов, соответствующих индексам - PullRequest
0 голосов
/ 10 января 2019

Я не могу найти похожий вопрос с этим вариантом использования.

У меня есть словарь, содержащий списки, и я хочу извлечь определенный индекс из каждого списка, и он назначен в новом dict с тем же ключом.

dict1 = {
 'key1': ['a', 'b', 'c'],
 'key2': ['d', 'e']
}

в

dict2 = {  # taking index 1 of each list
  'key1': 'b',
  'key2': 'e'
}

Это невозможно сделать с помощью dict.update, и я не могу найти встроенный способ сделать это без ручной итерации по каждому ключу, что не является пифоническим.

1 Ответ

0 голосов
/ 10 января 2019

Как насчет

dict1 = {
 'key1': ['a', 'b', 'c'],
 'key2': ['d', 'e']
}

Просто одна строка, которая проверяет, существует ли индекс в списке (иначе добавит None к ключу) * РЕДАКТИРОВАТЬ благодаря предложению @ RoadRunner

n = 1
dict2 = {k:v[n] if len(v) > n else None for k,v in dict1.items()}

OR другой подход, своего рода более питонный подход EAFP:

dict2 = {}
n = 1

for k,v in dict1.items():
    try:
        dict2[k] = v[n]
    except IndexError:
        dict2[k] = None
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...