这个Python把戏是如何运作的:a[::1]

2024-04-27 03:20:43 发布

您现在位置:Python中文网/ 问答频道 /正文

>> a = range(10)
>> print a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

这个切片给出了一个颠倒的列表。它是如何工作的?在


Tags: 列表切片rangeprint
3条回答

这是扩展切片语法。See the docs。在

因为range(x,y,z)x是起点,y是终点,z是步幅。在

这一点在this SO post中有很好的阐述。在

第三个参数是步进修饰符。在本例中,您使用的是-1步骤。在

您还可以使用2步骤来打印每个偶数索引。在

>>> a = range(10)
>>> a[::2]
[0, 2, 4, 6, 8]
>>> a[::-2]
[9, 7, 5, 3, 1]

一旦您扩展了slices,一定要理解未被充分理解的slice()函数:

>>> for sl in [(1,-1),(0,20,3),(10,),(None,None,-3),(None,None,4)]:
...    print range(20)[slice(*sl)]
... 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[0, 3, 6, 9, 12, 15, 18]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[19, 16, 13, 10, 7, 4, 1]
[0, 4, 8, 12, 16]

它对于fixed length data格式特别有用。在

相关问题 更多 >