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



我想在另一个循环的末尾添加一个循环。但是我尝试过的所有方法都失败了,我不知道该怎么办

我试过了

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

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

我期望:

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'

如果您要做的就是连续打印 2 个范围的所有值,然后将它们加在一起。

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

结果如下:

0
1
4
5

对于 Python3,您必须将范围包装在list中,或者为了使用更优雅和向前兼容的解决方案,使用itertools.chain它结合了两个范围,使它们成为一个可迭代的范围。

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 

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

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

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

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

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

最新更新