Lord_of_Rings
@Lord_of_Rings
Python developer

Почему в random.choice() ошибка?

Вот такой код:
import random

a = {'Russia':'Moscow','France':'Paris'}

print(random.choice(a))


Даёт вот такую ошибку:
Traceback (most recent call last):
  File "compiler.py", line 5, in <module>
    print(random.choice(a))
  File "/usr/lib/py/random.py", line 262, in choice
    return seq[i]
KeyError: 1


Или вот такую:
Traceback (most recent call last):
  File "compiler.py", line 5, in <module>
    print(random.choice(a))
  File "/usr/lib/py/random.py", line 262, in choice
    return seq[i]
KeyError: 0


Почему? (Python 3.7 и 3.10)
  • Вопрос задан
  • 105 просмотров
Решения вопроса 2
ZIK1337
@ZIK1337
странно видеть такой вопрос
потому что этот метод принимает на вход последовательность, а не мапу
Ответ написан
Комментировать
gd1xza
@gd1xza
random.choice
выбирает рандомно элемент списка из (0, len(seq))
при этом последовательность это то из чего можно взять элемент обратившись по индексу
ассоциативный массив дает доступ к элементам по имени а не индексу
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
Вы должны конвертировать словарь, в лист где каждый элемент кортеж и тогда уже случайно выбирать.
random.choice(list(a.items()))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы