如何识别变量是否在列表中?



如何识别随机选择的变量是否在列表中?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'

如何识别随机选择的变量是否在列表中?Python 3

简单:x in y,其中x是要检查的元素,y是值的可迭代对象。

但是,您的代码还有一些其他问题。您定义了两个永远不会被调用的函数,它们都没有返回任何值。您有多个Tank变量,它们不会像您认为的那样工作。这些变量只存在于定义它们的函数范围内。函数结束后,相应的Tank变量将被销毁。同时,在函数外部(在"全局作用域"中)声明的变量只被一次设置为空元组,然后永远不会更改,因为其他Tank变量被限制在各自的函数作用域中。如果绝对需要,应该在函数中将它们声明为global——或者更好的做法是,正确地将它们用作函数参数和返回值。

我不完全明白你要做的最终产品是什么,但我还是尽力了!

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