增加list元素中的值

时间:2014-02-01 22:31:36

标签: python arrays list loops

我正处于'那些'日子之一,而我所看到的一切只是搞乱了。

我有一个Die类(如在骰子中),我想滚动其中的100个,并计算每个数字的出现次数。比方说,在100个骰子中,40个是数字'6'。

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

    for d in n:
        d.roll()
        x = d.getFaceValue()
        faceList[x-1] += 1