結合比方說我想要打印的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