让我们说我试图打印0到25和75到100。 现在我有:
for x in range(0, 26):
print(x)
for x in range(75, 101):
print(x)
有没有办法将这些组合成一个for循环,导致:
print(x)
有些事情:
for x in range(0, 26) and range(75, 101):
print(x)
答案 0 :(得分:6)
创建一个迭代器,它返回第一个iterable中的元素,直到它耗尽,然后进入下一个iterable,直到所有的iterables都用完为止。
from itertools import chain
for x in chain(range(0, 26), range(75, 101)):
print(x)
适用于Python 2和3。
答案 1 :(得分:1)
使用列表理解:
[i for j in (range(0, 26), range(75, 101)) for i in j]
答案 2 :(得分:0)
for x in list(range(0, 26)) + list(range(75, 101)):
print(x)
您可以通过添加它们来连接两个列表。
答案 3 :(得分:0)
如果你不想导入任何东西,可以使用列表理解和单行来实现。您基本上将所有数字添加到列表中,然后将列表打印为长字符串,并在每个数字后面添加换行符。
print("\n".join([str(x) for x in range(0,101) if x < 26 or x > 74]))