我想在另一个循环的末尾添加一个循环。但是我尝试过的所有方法都失败了,我不知道该怎么办
我试过了
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)