除了中间部分,如何左右分割列表?

时间:2018-12-08 06:30:16

标签: python list slice

列表:

x = [1, 6, 2, 7, 1, 6, 1]

len(x)
> 7

我将如何拆分前3个和后3个列表,因此使用列表切片方法将值7保留下来?

输出

x[0:2,4:6] #<-- This doesn't work
> [1, 6, 2, 1, 6, 1] #<-- Expected output

2 个答案:

答案 0 :(得分:-1)

满足OP重新请求:“是否有一种方法可以将其保持在相同的括号内?x [...,...]与该括号类似吗?”(不仅仅是使用x[:3]+x[-3:]):

numpy.deletenumpy.r_一起使用。指定您要保持这种方式的元素n1的第一个数和n2元素的最后一个数

import numpy as np
x = [1, 6, 2, 7, 1, 6, 1]
n1 = 3 # Keep first n1 elements
n2 = 3 # Keep last n2 elements

print(list(np.delete(x,(np.r_[n1:len(x)-n2])))) # [1 6 2 1 6 1]

答案 1 :(得分:-1)

您可以这样做:x [0:3] + x [4:7]或x [:3] + x [-3:]。第二个从最后一个获取前三个元素,而从右边获取前三个元素。