#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