有没有办法使用切片表示法只采用列表的开头和结尾?
例如从开始的10个项目和从结尾的10个项目?
答案 0 :(得分:4)
不直接......但是一起使用切片和连接非常容易:
>>> a = list(range(100))
>>> a[:10] + a[-10:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
当然,如果列表中的项目少于20个,您将获得一些重叠值:
>>> a = list(range(15))
>>> a[:10] + a[-10:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
...但你的字面意思是你要求的:从一开始的10个项目,从最后的10个项目。如果你想要不同的东西,它是可行的,但你需要准确定义你想要的东西。
答案 1 :(得分:3)
您可以使用空列表替换中间的项目
>>> a = list(range(100))
>>> a[10:-10] = []
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
这样做不会产生重叠,只有整个列表没有足够的项目
>>> a = list(range(15))
>>> a[10:-10] = []
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
甚至为@ abarnert的案例以理智的方式工作
>>> a = list(range(3))
>>> a[10:-10] = []
>>> a
[0, 1, 2]