问题重写:
我正在制作一个游戏,其中2个玩家各有2个玩家。如果他们的作品都在太空11
上,他们就会赢得比赛。评分设置如下:
player_one = [1, 1]
player_two = [1, 1]
player_scores = [player_one, player_two]
有没有办法检查他们的分数是否如下所示:
player_one = [11,11]
答案 0 :(得分:2)
假设您要检查两个玩家是否[1, 1]
,您可以这样做,使用内置all功能
player_one = [1, 1]
player_two = [1, 1]
player_scores = [player_one, player_two]
if all(x == [1, 1] for x in player_scores):
print 'Both are on [1, 1]'
这适用于更多玩家,如果您要向player_three
添加player_scores
,它也会检查
答案 1 :(得分:0)
我想到的最快的解决方案:
def are_all_values_equal(the_list):
return len(set(the_list))==1
是的,我误解了。
def are_all_values_equal_to(the_list, value):
s = set(the_list)
if len(s) != 1:
return False
return s.pop() == value
答案 2 :(得分:0)
对于一个简短的列表,您可以使用两个嵌套的for循环来执行此操作
def both_on_eleven(scores):
for score in scores:
for individual_score in score:
if individual_score != 1:
return False
return True
答案 3 :(得分:0)
如果您有两个玩家分数,并且您想测试两者是否具有相等的[11, 11]
值,则将其转换为简单的布尔表达式似乎很简单:
players_score_check = player_one == [11, 11] and player_one == player_two
当然你也可以建立一个玩家得分列表,并使用内置的all()
函数迭代检查每个得分,就像另一个回答所暗示的那样,但我认为在这种情况下这将是过度杀伤。 / p>
供参考: