首页 > 解决方案 > 一维数组和二维数组元素搜索

问题描述

我正在创建一个彩票程序,在其中我使用随机数生成所有内容并将它们存储在一维数组和一个二维数组中。第一个数组 (1D) 包含 8 个中奖号码,分为 2 组,称为 g1 和 g2。第二个数组(2D)包含球员和他们的号码。

对于二维数组中的每个玩家,我需要通过将它们与中奖号码进行比较来确定他们是否是赢家。例如,如果玩家的任何号码也在中奖号码中,我需要计算他们并确定他们是否是哪个类别的获胜者。

他们是 4 个等级 1 级 - 拥有全部 6 个中奖号码的玩家 2 级 - 拥有任意 5 个中奖号码的玩家 3 级 - 拥有任意 4 个中奖号码的玩家 4 级 - 拥有任意 3 个中奖号码的玩家或来自 g1 组的少于 3 个号码的玩家并且有来自 g2 组的两个数字

如果不是,那么他们就输了

此外,如果玩家输入他/她的 ID,它应该返回玩家号码,以及他们是否在班级中获胜(1,2,3,4)

playerID = 2
playerID = input("Please enter player ID ")
if playerID is in a winner it should return 
     playerID
     playerNum
     winner or not with the class

标签: pythonarrays

解决方案


issubset可以帮助你匹配数组元素。请记住,issubset不需要元素的顺序相同。但这正是我推荐这个的原因——因为在彩票中顺序不重要。

Solution= [1,2,3,4] 
userGuess= [1,2,3,4]
otherGuess= [2,3,4]
badGuess= [4,5,6]

if set(userGuess).issubset(set(Solution)):
    return True // TRUE

if set(otherGuess).issubset(set(Solution)):
    return True // TRUE

if set(badGuess).issubset(set(Solution)):
    return True // FALSE

如果您不希望较短的子集有效,您可以检查数组的长度以匹配。


推荐阅读