Python 3.x 在Python中从列表的开头和结尾获取元素的单个片段?

Python 3.x 在Python中从列表的开头和结尾获取元素的单个片段?,python-3.x,list,slice,Python 3.x,List,Slice,Python中列表的第一个和最后N个元素可以使用以下方法获得: N = 2 my_list = [0, 1, 2, 3, 4, 5] print(my_list[:N] + my_list[-N:]) # [0, 1, 4, 5] 用纯Python中的一个片可以做到这一点吗?我尝试了my_list[-N:N],它是空的,my_list[N:-N],它给出了我不想要的元素。对于内置类型,根据定义,切片是连续的–a。单个切片操作无法表示非连续元素,例如列表的开头和结尾。避免在注释中回答问题。这是否

Python中列表的第一个和最后N个元素可以使用以下方法获得:

N = 2
my_list = [0, 1, 2, 3, 4, 5]
print(my_list[:N] + my_list[-N:])
# [0, 1, 4, 5]

用纯Python中的一个片可以做到这一点吗?我尝试了
my_list[-N:N]
,它是空的,
my_list[N:-N]
,它给出了我不想要的元素。

对于内置类型,根据定义,切片是连续的–a。单个切片操作无法表示非连续元素,例如列表的开头和结尾。

避免在注释中回答问题。这是否回答了您的问题@dmitryro,看起来你和一个相关的问题有联系。有没有一个答案,你可以链接,你认为答案如何做到这一点?我浏览了一遍,看到了关于外部依赖(比如Numpy)或定义新类的答案。我看不出有任何方法可以用一个切片来实现这一点。在纯Python中,除了依赖第三方库或您自己的实现之外,没有其他方法可以实现这一点。不过,有一种方法使用itertools.islice,正如其中一个答案中提到的那样。