Как определить, есть ли переменная в списке?

#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()