【问题标题】:Increment the value inside a list element增加列表元素内的值
【发布时间】:2014-02-25 14:12:01
【问题描述】:

我正经历着“那些”日子,而我所看到的一切都一团糟。

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

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

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

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

diceList = [ Die() for q in range(100)]
随机导入 类模具: 面值 = 1 大小 = 6 def getSize(self): 返回 self.size def getFaceValue(self): 返回 self.face_value def 滚动(自我): self.face_value = random.randint(1, self.size) 定义滚动列表(n): 我 = 0 a = n[0].getSize() 人脸列表 = [0] * 一个 对于死在 n: n[i].roll() x = n[i].getFaceValue() 打印(n[i].face_value) #faceList[x-1] = 1+1 #打印(人脸列表) 我 += 1

我已经对其进行了一些重新设计,并且我有办法得到答案 - 但我不确定这是否是一种特别好的方法。

定义滚动列表(n): 我 = 0 人脸列表 = [] a = n[0].getSize() 对于死在 n: n[i].roll() x = n[i].getFaceValue() faceList.append(x) 我 += 1 打印(面部列表) c = 1 当 a >= c 时: 打印(faceList.count(c)) c += 1

【问题讨论】:

    标签: python arrays list loops


    【解决方案1】:
    def rollList(n):
        a = n[0].getSize()
        faceList = [0] * a
    
        for d in n:
            d.roll()
            x = d.getFaceValue()
            faceList[x-1] += 1
    

    【讨论】:

    • 我很挣扎,因为我把 faceList[x-1] = 1+=1 而不是 faceList[x-1] += 1。非常感谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2017-10-13
    相关资源
    最近更新 更多