在3.4.3上使用范围时,切片列表不起作用

时间:2016-06-21 07:01:35

标签: python python-3.4

my_list = range(1, 11)

print(my_list[::2]) 

>>> range(1,11,2)

它没有显示正确的输出,应该是[1,3,5,7,9]

1 个答案:

答案 0 :(得分:1)

在python3.x上,range返回range个对象而不是列表。切片范围对象只返回另一个范围对象,即终端中显示的对象:

>>> range(1, 11)[::2]
range(1, 11, 2)
>>> type(range(1, 11)[::2])
<class 'range'>

然而,迭代结果应该产生所需的元素:

>>> list(range(1, 11)[::2])
[1, 3, 5, 7, 9]