【发布时间】:2019-03-24 15:01:06
【问题描述】:
假设我有一个数组 [0, 1, 2, 3, 4, 5, 6, 7] 和一个元组:(3, 3, 2)。
我正在寻找一种方法,根据我的元组数据将我的数组拆分为 3 数组:
[0, 1, 2]
[3, 4, 5]
[6, 7]
我可以编写这样一个简单的代码来获得我想要的东西,但是我正在寻找一种正确的 Pythonic 方式来做到这一点:
为了简单起见,我使用了列表。
a = [0, 1, 2, 3, 4, 5, 6, 7]
b = (3, 3, 2)
pointer = 0
for i in b:
lst = []
for j in range(i):
lst.append(a[pointer])
pointer += 1
print(lst)
或者这个:
a = [0, 1, 2, 3, 4, 5, 6, 7]
b = (3, 3, 2)
pointer = 0
for i in b:
lst = a[pointer:pointer+i]
pointer += i
print(lst)
结果:
[0, 1, 2]
[3, 4, 5]
[6, 7]
【问题讨论】:
-
通常当发帖者询问数组时会很麻烦,但请提供一个列表示例。在这里,它只是一个烦恼。也就是说,
np.array_split的操作与您的第二个解决方案非常相似,使用切片。但它需要一个累积元组。 -
@hpaulj 你是对的......对此感到抱歉。