Adding/appending一个循环到另一个循环的结尾
Adding/appending a loop to the end of another a loop
我想在另一个循环的末尾添加一个循环。但是我试过都失败了,我不知道该怎么办
我试过了
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'
此代码生成您似乎需要的输出:
for i in range(2):
print i
for r in range(4, 6):
print r
如果您要做的只是连续打印 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
您的代码不起作用,因为 i 是第一个 for 循环中的值,您不能将值附加到值。
下面的 for 循环将得到您想要的结果
for i in range(2):
print(i)
for r in range(4, 6):
print(r)
我想在另一个循环的末尾添加一个循环。但是我试过都失败了,我不知道该怎么办
我试过了
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'
此代码生成您似乎需要的输出:
for i in range(2):
print i
for r in range(4, 6):
print r
如果您要做的只是连续打印 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
您的代码不起作用,因为 i 是第一个 for 循环中的值,您不能将值附加到值。
下面的 for 循环将得到您想要的结果
for i in range(2):
print(i)
for r in range(4, 6):
print(r)