增加列表元素内的值

2024-04-29 08:21:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有那么一天,我看到的一切都是一团糟。

我有一个骰子类,我想掷100个骰子,并计算每个数字的出现次数。比如说,在100个骰子中,40个是数字“6”。

问题是,如果我硬编码一个if face_value==1类型的解决方案-如果有人改变模具上的面数量-我有点问题-因为它不会计算它们。

我认为最好的方法是制作一个列表(与可能的模具面大小相同)并在每次出现时增加列表中的数字。

简而言之,如何增加每个列表元素内部的值?

diceList = [ Die() for q in range(100)]
import random

class Die:
    face_value = 1
    size = 6

    def getSize(self):
        return self.size

    def getFaceValue(self):
        return self.face_value

    def roll(self):
        self.face_value = random.randint(1, self.size)
def rollList(n):
    i = 0

    a = n[0].getSize()
    faceList = [0] * a

        for Die in n:
            n[i].roll()
            x = n[i].getFaceValue()
            print(n[i].face_value)

            #faceList[x-1] = 1+1
            #print(faceList)
            i += 1

我已经做了一点,我有办法得到答案-我不确定这是否是一个特别好的方式来做它。

def rollList(n):
    i = 0
    faceList = []
    a = n[0].getSize()
    for Die in n:
        n[i].roll()
        x = n[i].getFaceValue()
        faceList.append(x)
        i += 1

    print(faceList)

    c = 1
    while a >= c:
        print(faceList.count(c))
        c += 1

Tags: inself列表forsizevaluedef数字