Python 如何在没有数组帮助的情况下检查3/5值是否相同?

Python 如何在没有数组帮助的情况下检查3/5值是否相同?,python,Python,大家好。我对编码还不熟悉,目前正试图弄清楚我是否有一套5个骰子。die1,die2,die3,die4,die5,我想检查3/5是否有相同的值。如果没有阵列的帮助,这是可能的吗? :当然可以。使用集合。计数器: 严格地说,这确实使用了一个列表,我认为这就是你的意思;数组完全是另一回事,因此它取决于您的限制的确切含义。您可以随时将其更改为元组…快速更新。谢谢大家的快速回答。在另一个论坛上给出我的答案: 我是这样做的: DICE值=标准偏差1、标准偏差2、标准偏差3、标准偏差4、标准偏差5 打印值

大家好。我对编码还不熟悉,目前正试图弄清楚我是否有一套5个骰子。die1,die2,die3,die4,die5,我想检查3/5是否有相同的值。如果没有阵列的帮助,这是可能的吗? :

当然可以。使用集合。计数器:


严格地说,这确实使用了一个列表,我认为这就是你的意思;数组完全是另一回事,因此它取决于您的限制的确切含义。您可以随时将其更改为元组…

快速更新。谢谢大家的快速回答。在另一个论坛上给出我的答案: 我是这样做的: DICE值=标准偏差1、标准偏差2、标准偏差3、标准偏差4、标准偏差5 打印值

对于diceValues中的项目: count=diceValues.countitem 不带数组的打印计数:

s = (die1==1)+(die2==1)+(die3==1)+(die4==1)+(die5==1)
if s >= 3:
    print('yes')
else:
    s = (die1==2)+(die2==2)+(die3==2)+(die4==2)+(die5==2)
    if s >= 3:
        print('yes')
    else:
        s = (die1==3)+(die2==3)+(die3==3)+(die4==3)+(die5==3)
        if s >= 3:
            print('yes')
        else:
            s = (die1==4)+(die2==4)+(die3==4)+(die4==4)+(die5==4)
            if s >= 3:
                print('yes')
            else:
                s = (die1==5)+(die2==5)+(die3==5)+(die4==5)+(die5==5)
                if s >= 3:
                    print('yes')
                else:
                    s = (die1==6)+(die2==6)+(die3==6)+(die4==6)+(die5==6)
                    if s >= 3:
                        print('yes')
                    else:
                        print('no')
编辑我的帖子,因为我找到了更好的解决方案:

dice = (10**die1 + 10**die2 + 10**die3 + 10**die4 + 10**die5) // 10

print(dice % 10 >= 3 or dice // 10 % 10 >= 3 or dice // 100 % 10 >= 3 or 
      dice // 1000 % 10 >= 3 or dice // 10000 % 10 >= 3 or dice // 100000 % 10 >= 3)

我知道对大于等于3的数字执行循环或显式字符串/整数搜索会更快,但在这种情况下,隐式数组循环是可能的:-

这里的3/5是什么?你能详细说明你的问题吗?当然。每个可能的骰子值需要一个变量作为计数器和许多ifs。编辑:甚至可以在没有计数器和单个、大量if的情况下工作。对不起,我解释得不好。我试图检查5个骰子中是否至少有3个骰子的值相同。希望这有帮助:谢谢,你的代码真的很好,但我正在尝试避免使用[d1,d2,d3,d4,d5]。@Mark有什么特别的原因吗?那么d1,d2,d3,d4,d5呢?它使用一个元组。为什么元组可以,但不是列表?我只是在练习。超级新的编码,我想学习尽可能多的:,必须谷歌元组现在元组是完全一样的列表,除了你不能改变其中的内容。
dice = (10**die1 + 10**die2 + 10**die3 + 10**die4 + 10**die5) // 10

print(dice % 10 >= 3 or dice // 10 % 10 >= 3 or dice // 100 % 10 >= 3 or 
      dice // 1000 % 10 >= 3 or dice // 10000 % 10 >= 3 or dice // 100000 % 10 >= 3)