检查列表中的两个项目是否符合特定条件

时间:2014-06-03 08:14:25

标签: python list

问题重写:

我正在制作一个游戏,其中2个玩家各有2个玩家。如果他们的作品都在太空11上,他们就会赢得比赛。评分设置如下:

player_one = [1, 1]  
player_two = [1, 1]
player_scores = [player_one, player_two]

有没有办法检查他们的分数是否如下所示:

player_one = [11,11]

4 个答案:

答案 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>

供参考: