Как использовать переменную random.choices в условном выражении - PullRequest
1 голос
/ 03 ноября 2019

Я пытаюсь использовать случайно выбранный элемент из списка в выражении IF, моя программа не распознает переменную Newchoice, даже когда я устанавливаю, что ее шансы отображаются в 100% случаев (odds = [100, 0, 0])

Вот мой текущий код:

import random

Subjects = ["Retro", "Technology", "Sport"]
odds = [100, 0, 0]

Newchoice = random.choices(Subjects, odds, k=1)
print(Newchoice)

if Newchoice == "Retro":
    print("Success")

Я ожидаю выходного шоу:

['Retro']
Success

Но я получаю просто:

['Retro']

Ответы [ 2 ]

2 голосов
/ 03 ноября 2019

random.choices возвращает список, следовательно, NewChoice относится к списку (содержащему строку «Ретро»), но вы сравниваете со строкой «Ретро».

Вы можете выполнить сравнение списка:

if Newchoice == ["Retro"]:

или сравнение строк путем получения первого (и только как k=1) элемента:

if Newchoice[0] == "Retro":
0 голосов
/ 03 ноября 2019

Это потому, что random.choices возвращает список, а вы сравниваете его со строкой. ["Ретро"]! = "Ретро". Возьмите первый (и единственный) элемент из списка, и он будет работать.

Newchoice = random.choices(Subjects, odds, k=1)[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...