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

问题描述 投票:-3回答:2

这个问题在这里已有答案:

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

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

python list split
2个回答
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
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.