-
DIEA
您可以使用list.extend来完成此任务。slice1 = a[1:5]
slice2 = a[6:10]
slice1.extend(slice2)
# now use slice1它将 slice2 的所有项目附加到第一个 slice1。
-
慕容3067478
如果您想避免为各个切片创建中间列表,您可以使用itertools.isliceandchain.from_iterable来获取切片并将其组合为迭代器。>>> from itertools import chain, islice>>> slc = [(1,5), (6,10)]>>> list(chain.from_iterable(islice(a, *s) for s in slc))[1, 2, 3, 4, 6, 7, 8, 9]也适用于 1 元组或 3 元组,仅用于结束或开始-结束步骤切片。
-
慕的地10843
没有特殊的语法,只需附加列表切片即可:a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# [1, 2, 3, 4, 6, 7, 8, 9]print(a[1:5]+a[6:10])
-
哆啦的时光机
我认为以下可能是最有效的方法:all_slice = [*a[1:5], *a[6:10]]哪里all_slice持有:[1, 2, 3, 4, 6, 7, 8, 9]这看起来很Pythonic。
-
PIPIONE
受到答案的启发:没有特殊的语法,只需附加列表切片即可:a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]打印(a[1:5]+a[6:10]) FROM -> Aviv Yanivb、a = a[1:5]、a[6:10]打印(b+a)
-
胡子哥哥
如果您尝试分割多个范围,则可以使用带有slice()列表理解的内置函数:a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]ranges = [(1, 5), (6, 10)] [n for s in ranges for n in a[slice(*s)]]# [1, 2, 3, 4, 6, 7, 8, 9]