List 检查列表中的多个项目
我有一个字符串列表,正在尝试检查此列表中的所有元素是否都在另一个列表中。我知道有一种方法可以做到这一点,即单独询问列表中的每个元素是否在第二个列表中,但似乎应该有一种更好的方法将代码流化。我正在使用Python 3和pygame 代码: 然后在整个游戏中,棋子被添加到战利品列表中。我可以通过List 检查列表中的多个项目,list,python-3.x,pygame,List,Python 3.x,Pygame,我有一个字符串列表,正在尝试检查此列表中的所有元素是否都在另一个列表中。我知道有一种方法可以做到这一点,即单独询问列表中的每个元素是否在第二个列表中,但似乎应该有一种更好的方法将代码流化。我正在使用Python 3和pygame 代码: 然后在整个游戏中,棋子被添加到战利品列表中。我可以通过 if "crown" in self.loot : if "bracelet" in self.loot : if "necklace" in self.loot
if "crown" in self.loot :
if "bracelet" in self.loot :
if "necklace" in self.loot :
if "earring" in self.loot :
if "ring" in self.loot :
if "black ring" not in self.loot :
end_message = gmaes.Message(value = self.name "is the Prettiest Princess",
size= 75,
color = color.pink,
x = games.screen.width/2,
y = games.screen.height/2,
lifetime = 5* games.screen.fps,
after_death = games.screen.quit)
games.screen.add(end_message)
谢谢 我建议您使用更合适的数据结构,即
set
required = set(['ring','erring','etc'])
have = set(loot)
if not (required - have):
....
想法是-
将从所需的中删除have
中的所有内容。如果结果为空,则表示您拥有所有内容
或者,您可以执行以下操作:
if all(req in loot for req in required):
....
这将遍历所需的required
,并检查每个req
是否在loot
中。如果每个结果都是True
,它将返回True
if all(req in loot for req in required):
....