Получение «Ошибка атрибута — Str не имеет атрибута GET»

#python #python-3.x #list #dictionary #get

#python #python-3.x #Список #словарь #получить

Вопрос:

Я пытаюсь закодировать эту небольшую программу, но по какой-то причине я застопорился в этой части. Я хочу, чтобы код печатал «случайный ответ» и «другой ответ», но в итоге выдает ошибку атрибута. Любая помощь? Спасибо..

Вот код.

 dictionary = {
'one':{'random':'random answer'},
'two':{'random':'another answer'}
}

for item in dictionary:
  print(item.get('random'))
  

Ответ №1:

Попробуйте это.

 dictionary = {
   'one':{'random':'random answer'},
   'two':{'random':'another answer'}
}

for key, item in dictionary.items():
   print(item.get('random'))
  

Ответ №2:

Для перебора словаря вы можете использовать dictionary.items() , который дает вам кортеж пары ключ-значение. Вы можете принять их item, value . Затем вы можете использовать value.get(another_key)

 dictionary = {
    'one': {'random': 'random answer'},
    'two': {'random': 'another answer'}
}

# item -> 'one' and value -> '{'random': 'random answer'}'
# value will be the dictionary on which you can call get function
for item, value in dictionary.items():
    print(value.get('random'))
  

Ответ №3:

Если вы выполняете итерацию по dict в Python, вы фактически выполняете итерацию по ключам словаря, а не по парам ключ-значение. Итак, в вашем коде элемент является ключом и, следовательно get('random') , сбой.

Для перебора пар ключ-значение вы можете использовать этот .items() метод. Таким образом, вы будете перебирать кортежи пар ключ-значение:

 for key, value in dictionary.items():
    print(value.get('random'))