#python #python-3.x #list
#python #python-3.x #Список
Вопрос:
Наличие списка, подобного:
my_list = [
[{'score':9, 'name':'Jack'}],
[{'score':3, 'name':'Danielle'}]
]
Я пытаюсь выполнить итерацию по этому списку, но не могу понять, как получить доступ к значениям.
for listing in my_list:
print(listing['score'])
Вышеуказанное не работает. Я понимаю, что я, похоже, работаю со словарем, который все еще находится внутри второго списка. Однако у меня возникли проблемы с поиском правильного способа получить доступ.
Комментарии:
1. синтаксис неверен.
2. Словари создаются с
{...}
помощью, а не[...]
.3. @VishalSingh Я это исправил. Попытался сделать минимальный пример проблемы, и я думаю, что моя голова где-то в космосе. 🙂
Ответ №1:
Вы можете попробовать это, точно сопоставив сигнатуру внутренних элементов. Это называется tuple unpacking
my_list = [
[{'score':9, 'name':'Jack'}],
[{'score':3, 'name':'Danielle'}]
]
for [listing] in my_list:
print(listing['score'])
# 9
# 3
Ответ №2:
Вы используете неправильный синтаксис для словарей python.
Словари Python объявляются между {...}
.
Ваш список должен выглядеть следующим образом:
my_list = [
{'score':9, 'name':'Jack'},
{'score':3, 'name':'Danielle'}
]
Редактировать:
В вашем редактировании у вас есть список внутри списка. Попробуйте
for listing in my_list:
print(listing[0]['score'])
Комментарии:
1. Мой пример был неверным. Я перепутал создание минимального примера. Исправлено.
Ответ №3:
Вы создаете 2D-список, внутри которого вам нужны словари
my_list = [
{'score':9, 'name':'Jack'},
{'score':3, 'name':'Danielle'}
]
for listing in my_list:
print(listing['score'])
Комментарии:
1. Мой пример был неверным. Я перепутал создание минимального примера. Исправлено.
Ответ №4:
Вам нужно 2 цикла, один для внешнего списка и один для внутреннего списка:
my_list = [
[{'score':9, 'name':'Jack'}],
[{'score':3, 'name':'Danielle'}]
]
for sublist in my_list:
for dct in sublist:
print(dct['score'])
# 9
# 3
Вы также можете использовать понимание вложенных списков:
print([dct['score'] for sublist in my_list for dct in sublist])
# [9, 3]
Ответ №5:
Вам нужно создать элементы внутри вашего списка с {}
помощью, а не []
.
my_list = [
{'score':9, 'name':'Jack'},
{'score':3, 'name':'Danielle'}
]
[]
создаст a list
, в то время {}
как создаст a dict
.
Комментарии:
1. Мой пример был неверным. Я перепутал создание минимального примера. Исправлено.