结合比方说我想要打印的0〜25和75〜100 现在我有:如何两个for循环
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〜25和75〜100 现在我有:如何两个for循环
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)
请返回从第一个迭代直到它耗尽元素的迭代器,然后进入下一个迭代,直到所有的迭代都耗尽。
from itertools import chain
for x in chain(range(0, 26), range(75, 101)):
print(x)
同时适用于Python 2和3
for x in list(range(0, 26)) + list(range(75, 101)):
print(x)
您可以通过添加它们连接两个列表。
请注意,在Python 3.x中,它会因'不支持的操作数类型为+:'范围'和'范围'而失败。 – alecxe
你可以用'list(range(x,y))'' – Busturdust
'来包装啊。我错过了打印(x)语法,表明他们正在使用3.我将很快修改。 –
如果您不想导入任何内容,可以使用列表理解和单行来实现。您基本上将所有数字添加到列表中,然后在每个数字后面以换行符打印列表作为长字符串。
print("\n".join([str(x) for x in range(0,101) if x < 26 or x > 74]))
使用列表理解:
[i for j in (range(0, 26), range(75, 101)) for i in j]
只需添加到@alecxe答案:如果你有一个列表的列表(或任何可迭代),可以使用from_iterable。 即:** list_ = [iter1,iter2,...] **然后:** for x in chain.from_iterable(list _)** 一个很好的用法是将一列列表空置为空。 – Hamlett