#python-3.x #list #variables
Вопрос:
Как определить, есть ли случайно выбранная переменная в списке? Python 3
Пример:
WarriorList = ['Achilles', 'Sun Wukong'] GuardianList = ['Ares', 'Ymir'] HunterList = ['Apollo', Artemis'] MageList = ['Anubis', 'ra'] Tank = () def TankPick(): Tank = (random.choice(WarriorList)) print (Tank) def BalancePick(): if (Tank) in WarriorList: print ('yes') print (random.choice(Magelist)) else: print ('no') print (random.choice(Hunterlist))
Ожидаемые результаты:
'Sun Wukong' 'yes' 'ra'
или
'Ymir' 'no' 'Artemis'
Комментарии:
1. Вы пропускаете одну цитату в строке 3, кстати,
2. Поскольку ответ, который вы ищете, не зависит от того, является ли цель случайной или нет, я удаляю
random
тег.
Ответ №1:
Как определить, есть ли случайно выбранная переменная в списке? Python 3
Просто: x in y
, где x
находится элемент, который вы хотите проверить, и y
является вашей итерацией значений.
Однако с вашим кодом есть и другие проблемы. Вы определяете две функции, которые никогда не вызываются, ни одна из которых не возвращает никакого значения. У вас есть несколько Tank
переменных, которые будут работать не так, как вы, кажется, думаете. Эти переменные находятся только в пределах своих функций, в которых они определены. После завершения функции соответствующие Tank
переменные уничтожаются. Тот, который вы объявляете вне функций (в «глобальной области»), между тем только один раз устанавливается как пустой кортеж, а затем никогда не изменяется, потому что, опять же, другие Tank
переменные ограничены их соответствующими областями функций. Если вам абсолютно необходимо, вы должны объявить их как global
в функциях — или, что еще лучше, правильно использовать их в качестве аргументов функций и возвращаемых значений.
Ответ №2:
Я не совсем понимаю, над каким конечным продуктом вы работаете, но я пошел дальше и сделал все, что мог!
import random WarriorList = ['Achilles', 'Sun Wukong'] GuardianList = ['Ares', 'Ymir'] HunterList = ['Apollo', 'Artemis'] MageList = ['Anubis', 'ra'] class Container: def __init__(self): self.Tank = () def TankPick(self): # Grabs a random name from all of the lists included self.Tank = (random.choice(WarriorList GuardianList HunterList MageList)) print (self.Tank) def BalancePick(self): if self.Tank in WarriorList: print ("yesn" random.choice(MageList)) # n is new line else: print ("non" random.choice(HunterList)) cr = Container() # Runs TankPick inside of Container cr.TankPick() # Runs BalancePick inside of Container after TankPick cr.BalancePick()