在PYTHON中使用带有for循环的多个范围

时间:2016-06-27 19:28:36

标签: python range

我不明白如何在for循环中使用多个范围。

for n in range(1,21) + range(30,100,10):
   # do something
我用谷歌搜索但仍未发现。任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:5)

Python 2.7 中,您可以添加range,因为调用range(something) is a list的结果,并列出can be added来生成新的列表:

>>> range(5)
[0, 1, 2, 3, 4]

>>> range(8,12)
[8, 9, 10, 11]

>>> range(5) + range(8,12)
[0, 1, 2, 3, 4, 8, 9, 10, 11]

但是在 Python 3.5 中你不能这样做,因为range类型表示数字的不可变序列。查看the docs了解详情。

答案 1 :(得分:2)

每个范围表达式返回一个列表:range(1,21)返回[1,2,...,20]range(30,100,10)返回[30,40,...,90]+运算符会连接两个列表,因此range(1,21) + range(30,100,10)的计算结果为[1,2,...,20,30,40,...,90]