将range()的结果存储为列表变量-Python
我正在做Euler项目的挑战,以便更好地掌握python。我是一名初学者,我正在努力做到这一点将range()的结果存储为列表变量-Python,python,python-2.7,Python,Python 2.7,我正在做Euler项目的挑战,以便更好地掌握python。我是一名初学者,我正在努力做到这一点 etc要生成从1到1000的值,需要将结束值指定为1000+1,即1001。所以 Python2.x Python3.x 将为您提供从1到1000的值列表 使用半闭区间,这意味着它包括它生成的值列表中的第一个值,但不包括最后一个值。请注意,如果不指定起始值,范围将默认为0。还可以指定增量值,除非另有指定,否则该值默认为1 以下三个例子来自: 要生成从1到1000的值,需要将结束值指定为1000+1,即
etc要生成从1到1000的值,需要将结束值指定为1000+1,即1001。所以 Python2.x Python3.x 将为您提供从1到1000的值列表 使用半闭区间,这意味着它包括它生成的值列表中的第一个值,但不包括最后一个值。请注意,如果不指定起始值,范围将默认为0。还可以指定增量值,除非另有指定,否则该值默认为1 以下三个例子来自:
要生成从1到1000的值,需要将结束值指定为1000+1,即1001。所以 Python2.x Python3.x 将为您提供从1到1000的值列表 使用半闭区间,这意味着它包括它生成的值列表中的第一个值,但不包括最后一个值。请注意,如果不指定起始值,范围将默认为0。还可以指定增量值,除非另有指定,否则该值默认为1 以下三个例子来自:
将此代码用于您的代码:
lista = range(1, 1001)
listb = list(lista)
listc = list(lista)
不要这样做:
lista = listb = listc = range(1, 1001)
因为您的POP都在同一个列表中工作。将此用于您的代码:
lista = range(1, 1001)
listb = list(lista)
listc = list(lista)
不要这样做:
lista = listb = listc = range(1, 1001)
因为你的POP都在同一个列表上工作。虽然你的问题是如何列出一个范围内的数字,但我想问你一个问题: 你真的需要三个数字列表还是只需要 查看解决方案的可能值 我这样问是因为尽管你能找到你想要的答案,但它并不是你前进方向的最佳表达方式。例如:
for c in range(1, 1001):
for b in range(1, c):
for a in range(1, b):
if is_pythagorean_triple(a, b, c):
...
def is__pythagorean_triple(a, b, c):
...
不会创建任何列表,至少没有您需要考虑的列表。另一个问题是为什么a的范围只有b 虽然你的问题是如何列出一个范围内的数字,但我想问你一个问题: 你真的需要三个数字列表还是只需要 查看解决方案的可能值 我这样问是因为尽管你能找到你想要的答案,但它并不是你前进方向的最佳表达方式。例如:
for c in range(1, 1001):
for b in range(1, c):
for a in range(1, b):
if is_pythagorean_triple(a, b, c):
...
def is__pythagorean_triple(a, b, c):
...
不会创建任何列表,至少没有您需要考虑的列表。另一个问题是为什么a的范围只有b Protip:为变量使用有意义的名称。Protip:为变量使用有意义的名称。它给出错误回溯最新调用最后:文件euler9.py,第10行,在lista.pop-1索引器中:从空列表中弹出:/@c3ns0r3d是否在while循环之前进行这些调用lista=range1,1001等?如果您按照我在回答中所示的方式创建lista,您肯定可以毫无困难地执行lista.pop-1。@c3ns0r3d如果看不到所有当前代码,很难说。您发布的代码没有正确缩进,可能已经更改。问题不在于列表创建或pop函数。@c3ns0r3d我建议您在shell中以交互方式尝试一些列表创建和函数,以了解它们,然后相应地修改程序。这就是当我遇到一些意想不到的程序行为时通常的工作方式。通过这种方式,您可以说服自己列表是如何创建的以及pop函数的使用。在记事本++上,缩进是正确的,没有列表变量是我的全部代码,我倾向于只为这些挑战编写代码片段。它给出了错误回溯最近一次调用:文件euler9.py,第10行,在lista.pop-1索引器中,ror:pop from empty list:/@c3ns0r3d在while循环之前是否调用lista=range1、1001等?如果您按照我在回答中所示的方式创建lista,您肯定可以毫无困难地执行lista.pop-1。@c3ns0r3d如果看不到所有当前代码,很难说。您发布的代码没有正确缩进,可能已经更改。问题不在于列表创建或pop函数。@c3ns0r3d我建议您在shell中以交互方式尝试一些列表创建和函数,以了解它们,然后相应地修改程序。这就是当我遇到一些意想不到的程序行为时通常的工作方式。通过这种方式,您可以说服自己列表是如何创建的以及pop函数的使用。在notepad++上,缩进是正确的,没有列表变量就是我的全部代码,我倾向于为这些挑战编写代码片段
lista = listb = listc = range(1, 1001)
for c in range(1, 1001):
for b in range(1, c):
for a in range(1, b):
if is_pythagorean_triple(a, b, c):
...
def is__pythagorean_triple(a, b, c):
...