这个数组拆分语法在python中意味着什么

这个数组拆分语法在python中意味着什么,python,list,split,Python,List,Split,这里的分裂是怎么发生的?请提供内部解释。假设X是一个列表、元组或数组,则第一个片段([50:][code>)将返回从第50个元素到末尾的所有元素。第二个片段([:50])将返回第一个到第49个元素。在一个简单的列表中以下面的示例为例: (X_train, X_test) = X[50:], X[:50] 将输出 a = [0, 1, 2, 3, 4, 5, 6, 7] print(a[:3]) print(a[3:]) 扩展到[50://code>和[:50]将分别返回从第50个索引到末尾的

这里的分裂是怎么发生的?请提供内部解释。

假设X是一个列表、元组或数组,则第一个片段(
[50:][code>)将返回从第50个元素到末尾的所有元素。第二个片段(
[:50]
)将返回第一个到第49个元素。

在一个简单的列表中以下面的示例为例:

(X_train, X_test) = X[50:], X[:50]
将输出

a = [0, 1, 2, 3, 4, 5, 6, 7]
print(a[:3])
print(a[3:])
扩展到
[50://code>和
[:50]
将分别返回从第50个索引到末尾的所有内容和从开始到第50个索引之前的所有内容

问题的第二部分是关于元组解包的。如果要设置的变量数量与某个集合(如元组或列表)中的元素数量相同,则会将它们解压缩。例如:

[0, 1, 2]
# [:3] returns everything from the start, to before the third index
[3, 4, 5, 6, 7]
# [3:] returns everything from the third index to the end
将输出:

(a, b) = 42, 9001
print("Val A:", a)
print("Val B:", b)
实际上,在变量周围甚至不需要
()
括号

扩展到你的问题,实际上只是简单的一句话:

Val A: 42
Val B: 9001

我删除了numpy和pandas标记,因为它们与问题中使用的语法无关
X_train = X[50:]
X_test = X[:50]