二维数组(IndexError:列表索引超出范围)

时间:2019-07-10 19:56:05

标签: python arrays

我正在尝试创建一种算法,该算法可以计算除以除数的数字。

const puppeteer = require("puppeteer");

exports.screenshotPup = async (req, res) => {
  const browser = await puppeteer.launch({ args: ["--no-sandbox"] });
  const page = await browser.newPage();

  await page.goto("https://xenaccounting.com");

  const imageBuffer = await page.screenshot({ fullpage: true });

  await browser.close();

  if (res) {
    res.set("Content-Type", "image/png");
    res.send(imageBuffer);
  }

  return imageBuffer;
};

我希望有这样的东西

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

2 个答案:

答案 0 :(得分:2)

您无法添加到从未创建的列表元素中。

答案 1 :(得分:2)

只需用零填充列表即可:

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])。很容易忽略。

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