python反转列表不用切片_关于python:使用切片表示法反转列表

在下面的例子:

foo = ['red', 'white', 'blue', 1, 2, 3]

在所有的元素:将打印foo[0:6:1]foo。然而,foo[6:0:-1]将omit 0th首届欧元。

>>> foo[6:0:-1]

[3, 2, 1, 'blue', 'white']

我的理解是,我可以使用foo.reverse foo()或():1】:反向印刷的列表,但我试图理解为什么::foo的0 - 1 [ 6 ]不是打印整个名单?

还要注意foo[7:None:-1]的可能性:)

在试图理解切片符号之前,我从来没有使用过python,我的问题是为什么foo[6:0:-1]没有抛出索引错误,python不关心它吗?因为上面的示例数组中没有6个索引。

@Mubasharahmad切片不是索引,并且在超出界限时不会抛出任何错误。不过,索引在超出界限时确实会引发异常。

Slice notication in short:

[ : : ]

如果你想包括第一个元素,当你反复列表时,离开中间元素empty,就像这样:

ZZU1

你也可以在这里找到一些关于Python的好信息解释Python的切削标记

这:[ : : ]是我见过的最清晰的切片语法解释。称之为"要排除的第一个元素"确实使事情变得很明显。

用负的步骤进行负的切片怎么样?我还是不明白。

当使用负索引作为或时,它是从列表的后面进行索引的,因此-1是最后一个元素,-2是第二个到最后一个元素,等等。例如,x[-1:-4:-1]将按相反的顺序得到x的最后三个元素。因此,您可以将其解释为"从列表中的最后一个元素(-1)向后移动每个元素(-1步),直到但不包括从末尾开始的第四个元素(-4)。

倒车时(如为-1时),我认为有帮助。所以,要从一个列表中按相反的顺序得到n个"最左边"的元素:foo[n-1::-1]。以相反的顺序获得n的"最右边"元素:foo[-1:-n-1:-1]。

如果你有麻烦的记忆,你可以尝试做冰淇淋:

[In:out:shake it all about]

[First element to include:first element to leave out:the step to use]

YMV

...why foo[6:0:-1] doesn't print the entire list?

因为中值是唯一的,比包容性强,停止值。The interval notication is[start,stop.]

This is exactly how[x]range works:

>>> range(6, 0, -1)

[6, 5, 4, 3, 2, 1]

这些是列入你的结果列表的线索,而不包括第一个项目的0。

>>> range(6, -1, -1)

[6, 5, 4, 3, 2, 1, 0]

另一种看待它的方式是:

>>> L = ['red', 'white', 'blue', 1, 2, 3]

>>> L[0:6:1]

['red', 'white', 'blue', 1, 2, 3]

>>> len(L)

6

>>> L[5]

3

>>> L[6]

Traceback (most recent call last):

File"", line 1, in

IndexError: list index out of range

The index 6 is beyond(one-past,precisely)the valid indices for L,so excluding it from the range as the excluded stop value:

>>> range(0, 6, 1)

[0, 1, 2, 3, 4, 5]

还是给你名单上每一个项目的线索。

range可以,但Slice不能,因为-1是最后一个元素。因此,l=[1, 2, 3]和l[2:-1:-1] == []。

这个答案可能是一个小问题,但对一个同样麻烦的人来说,它可能是一个帮助。你可以用任意结束的列表到0索引,应用第二个插入点如:

>>> L = list(range(10))

>>> L

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> (start_ex, end) = (7, 0)

>>> L[end:start_ex][::-1]

[6, 5, 4, 3, 2, 1, 0]

这实际上非常有用,因为您可以对所有情况使用相同的语法。您不必将0视为特殊情况。

使用

>>>foo[::-1]

This displays the reverse of the list from the end element to the start,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值