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

时间:2018-01-02 02:56:33

标签: python list split

(X_train, X_test) = X[50:], X[:50]

分裂是如何发生的?请提供内在的解释。

2 个答案:

答案 0 :(得分:2)

在一个简单的列表中采用以下示例:

a = [0, 1, 2, 3, 4, 5, 6, 7]
print(a[:3])
print(a[3:])

将输出

[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

扩展到[50:][:50]将返回从第50个索引到结尾的所有内容以及从开头到第50个索引之前的所有内容。

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

(a, b) = 42, 9001
print("Val A:", a)
print("Val B:", b)

将输出:

Val A: 42
Val B: 9001

你实际上甚至不需要变量周围的()括号。

扩展到你的问题,它实际上只是一个简化的单行版本:

X_train = X[50:]
X_test = X[:50]

答案 1 :(得分:1)

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