首页 > 解决方案 > 列表的第一个元素和最后一个元素,Python

问题描述

我知道这个问题有类似的问题,只要求第一个元素和最后一个元素,但我认为这个问题是不同的:

给定一个列表a=[1,2,3,4,5,6,7,8,9,10],是否有可能以一种优雅的形式编写一种方法,以使其返回的方式在一行中获取第一个元素和最后三个(或 n 个)元素[8,9,10,1]

我尝试使用a[7:-1],但由于它理解为好像它们是倒排索引,所以它不起作用。

我也知道这样做是可能的a[len(a)-n:]+[a[0]],但我想知道是否有“括号”方式。

标签: pythonpython-3.xlist

解决方案


不,没有。连接两个切片是你能得到的最好的:

a[-3:] + a[:1]

使用一些实用程序,您至少可以从单个连续切片中获得此结果,这可以简化一些代码来计算边界索引并检查重叠或保持入站:

from itertools import cycle, islice

list(islice(cycle(a), 7, 11))
# [8, 9, 10, 1]

看:


推荐阅读