我找不到关于[::-1]
的任何信息。在wikibooks python tutorial中,有一个关于非连续列表的部分,但是没有关于参数的信息< 0.效果很明显,但你怎么解释呢?
示例用法:
>>> foo = [1, 2, 3]
>>> foo[::-1]
[3, 2, 1]
答案 0 :(得分:8)
语法如下:
foo[start:end:step] # begin with 'start' and proceed by step until you reach 'end'.
因此foo[::-1]
表示entire list with step=-1
,因此实际上会撤消列表。
有关详细说明,请参阅this answer。
答案 1 :(得分:2)
要添加的一件事是:
foo[::-1]
创建给定数组的副本,而不会影响foo本身 可以按如下方式分配:
foo = [1,2,3]
bar = foo[::-1]
# print foo --> [1,2,3]
# print bar --> [3,2,1]
但要更新foo,请使用:
foo.reverse()
是首选
答案 2 :(得分:2)
负步骤与range(start, stop, step)
中的行为相同。
关于消极步骤要记住的事情是stop
始终是排除的结束,无论是更高还是更低。
'0123456789'[5:0:-1] == '54321'
而非'43210'
的人经常会感到惊讶。如果你想要一些子序列,只是顺序相反,单独进行反转会更加清晰。例如。从左边切掉一个字符,从右边切两个,然后反转:'0123456789'[1:-2][::-1] == '7654321'
s。如果您不需要副本,只想循环,使用reversed()
更具可读性:
for char in reversed('0123456789'[1:-2]):
...