【问题标题】:Two-Dimensional array (IndexError: list index out of range)二维数组(IndexError:列表索引超出范围)
【发布时间】:2019-07-11 03:58:13
【问题描述】:

我正在尝试制作一个算法,它计算有多少数字被除而没有余数。

d=[]
for i in range (0, 10001):
    for c in range (1, 16):
        if i % c == 0: d[c] += 1

我希望有这样的东西

/1:  10000
/2:  5000
/3:  3334
/4:  2500
/5:  2000
/6:  1667
/7:  1429
/8:  1250
/9:  1112
/10:  1000
/11:  910
/12:  834
/13:  770
/14:  715
/15:  667

,但我得到IndexError: list index out of range

【问题讨论】:

    标签: python arrays


    【解决方案1】:

    只需用零填充列表:

    d = [0] * 17  # <== THIS
    for i in range (0, 10001):
        for c in range (1, 16):
            if i % c == 0: d[c] += 1
    

    请注意,这在开头有一个无关紧要的零(即d[0])。很容易被忽略。

    此外,与您的代码实际执行的操作相比,您的计数减少了 1(例如,您的范围中有 10001 偶数,而不是 10000)。

    【讨论】:

      【解决方案2】:

      您不能添加到从未创建的列表中的元素。

      【讨论】:

        猜你喜欢
        • 2015-10-20
        • 1970-01-01
        • 2020-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-31
        • 2015-06-26
        相关资源
        最近更新 更多