Python 将一个循环添加/附加到另一个循环的末尾

Python 将一个循环添加/附加到另一个循环的末尾,python,python-2.x,Python,Python 2.x,我想在另一个循环的末尾添加一个循环。但我所做的一切都失败了,我不知道该怎么办 我试过了 for i in range(2): print i for r in range(4, 6): print i.append(r) 及 我期望: 0 1 4 5 但我收到了以下错误: 第一个代码示例的错误: Traceback:(most recent call last): File "main.py", line 4, in <module> print

我想在另一个循环的末尾添加一个循环。但我所做的一切都失败了,我不知道该怎么办

我试过了

for i in range(2):
   print i
   for r in range(4, 6):
     print i.append(r)

我期望:

0
1
4
5
但我收到了以下错误:

第一个代码示例的错误:

Traceback:(most recent call last):
  File "main.py", line 4, in <module>
    print i.append(r)
AttributeError: 'int object has no attribute 'append'
Traceback:(most recent call last):
  File "main.py", line 4, in <module>
    print i.append(4, 5)
AttributeError: 'int object has no attribute 'append'
Traceback:(最近一次通话最后一次):
文件“main.py”,第4行,在
打印i.append(r)
AttributeError:'int对象没有属性'append'
第二个代码示例的错误:

Traceback:(most recent call last):
  File "main.py", line 4, in <module>
    print i.append(r)
AttributeError: 'int object has no attribute 'append'
Traceback:(most recent call last):
  File "main.py", line 4, in <module>
    print i.append(4, 5)
AttributeError: 'int object has no attribute 'append'
Traceback:(最近一次通话最后一次):
文件“main.py”,第4行,在
打印i.append(4,5)
AttributeError:'int对象没有属性'append'

此代码生成您似乎需要的输出:

for i in range(2):
   print i
for r in range(4, 6):
  print r

如果您要做的只是连续打印两个范围的所有值,那么只需将它们相加即可

for i in range(2) + range(4, 6):
   print i
结果如下:

0
1
4
5
对于Python3,您必须将范围包装在
列表中,或者使用它将两个范围组合在一起,使它们成为一个可移植的解决方案,以获得更优雅和向前兼容的解决方案

for i in chain(range(2), range(4, 6)):
   print(i)
如果您要做的是将两个范围都放入一个列表中,则链也会起作用:

list(chain(range(2), range(4, 6)))
#[0, 1, 4, 5]
或者把它们加在一起

#py2
range(2) + range(4, 6)
#py3
list(range(2)) + list(range(4, 6)) 

其他答案也很好,但是如果您希望得到一个列表,那么这就是您希望在不使用导入的情况下尝试执行的操作

lst = []
for i in range(2):
   lst.append(i)
for r in range(4, 6):
   lst.append(r)
print lst 

您的代码不起作用,因为i是第一个for循环中的一个值,您不能将值附加到值

下面的for循环将得到您想要的结果

for i in range(2):
   print(i)
for r in range(4, 6):
    print(r)

range()
为您提供一个整数列表,并对其进行迭代以获得每个整数。整数不是列表,因此不能
附加到它们。您试图完成的是什么?当您附加到列表时,返回的值只是
None
,因此不会打印任何内容<代码>i=列表();对于范围(2):对于范围(4,6)中的r:i.append(r)
在for循环之前创建一个空列表,然后append
i
,然后为
r
添加另一个单独的for循环,并使用
i.append(r)
将r追加到i。我想他是在为i和r值请求一个列表,这是怎么回事?预期的输出似乎很清楚。这只是因为他的代码中有
.append
。我可能弄错了。好吧,我知道你在那里做了什么。你的答案值得投赞成票,即使输出不符合要求。或者只是简单的
range(2)+range(4,6)
做同样的事情。没错,我使用Python3的时间太长了。对于Python3,你可以做
list(range(2))+list(range(4,6))
@FredLarson
chain()
方法更好(内存效率更高)Python2的生命周期几乎结束了是的,你可以,尽管我更喜欢链式方法,因为行更可读、更高效,并且允许更多的范围