gpt4 book ai didi

python - 切片以反转python中列表的一部分

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:41 25 4
gpt4 key购买 nike

我有一个列表,我想从中提取一个从头到尾的子切片。两行代码,就是

mylist = [...]
mysublist = mylist[begin:end]
mysublist = mysublist[::-1]

是否有切片符号可以在一行中获得相同的效果?这个

mysublist = mylist[end:begin:-1]

不正确,因为它包含 end并排除 begin元素。这个

mysublist = mylist[end-1:begin-1:-1]

begin 时失败是 0,因为 begin-1现在是-1这被解释为 mylist 的最后一个元素的索引.

最佳答案

如果 begin0,则使用 None:

mysublist = mylist[end - 1:None if not begin else begin - 1:-1]

None 表示“默认”,与省略值相同。

您始终可以将条件表达式放在单独的行中:

start, stop, step = end - 1, None if not begin else begin - 1, -1
mysublist = mylist[start:stop:step]

演示:

>>> mylist = ['foo', 'bar', 'baz', 'eggs']
>>> begin, end = 1, 3
>>> mylist[end - 1:None if not begin else begin - 1:-1]
['baz', 'bar']
>>> begin, end = 0, 3
>>> mylist[end - 1:None if not begin else begin - 1:-1]
['baz', 'bar', 'foo']

关于python - 切片以反转python中列表的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43506123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com