Как получить данные ключа в словаре, который одновременно вложен в список

#python #list #dictionary #nested-lists

Вопрос:

 data = [
    {
        'name1': 'aaa',
    },
    {
        'name2': 'bbb',
    },
    {
        'name3': 'ccc',
    },
    {
        'name4': 'ddd',
    }
]
 

Теперь, как я могу получить данные ключа >>>name1 (т. е. aaa ) с индексом № списка одновременно.

Комментарии:

1. Каким будет ожидаемый результат? Также показ того, что вы пробовали до сих пор, может помочь вам дать лучший ответ?

2. Добро пожаловать в Stack Overflow. Я не понимаю, в чем тут трудность. Знаете ли вы, как написать код, который получает этот ключ из словаря? Знаете ли вы, как написать код, который получает один из элементов из списка? Поскольку элементы в вашем списке являются словарями, то проблем быть не должно. Просто делай и то, и другое.

Ответ №1:

Метод

  • Используйте перечисление, чтобы указать индекс каждого словаря во время цикла.
  • Используйте dictionary.items() для извлечения пар ключей и значений каждого словаря

Код

 def get_value(data, key):
        ' Retrieves index of dictionary and value with key key'
        for i, d in enumerate(data):
            for k, v in d.items():
                if k == key:
                    return i, v    # return index and value of dictionary
            
 

Тест

 print(get_value(data, 'name1'))
# Output: (0, 'aaa')
 

Ответ №2:

Вы получаете доступ к списку с индексом как int , вы получаете доступ к дикту с индексом в качестве ключа, независимо от типа

 data = [
    {'name1': 'aaa', },
    {'name2': 'bbb', },
    {'name3': 'ccc', },
    {'name4': 'ddd', }
]

x = data[0]['name1']
print(x)  # aaa
 

Пример с типом ключа int

 data = [{'name1': 'aaa'}, {0: 'ddd'}]
x = data[1][0]
print(x)  # ddd