gpt4 book ai didi

Python 通过跳过列表之间的值将值附加到空列表

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:37 25 4
gpt4 key购买 nike

这只是我想要实现的目标的一个最小示例。

我有一个数组:

array = [1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,....,1,2,3,4,5,6,7,8,9,10]

我想遍历这个数组并创建一个如下所示的新数组:

new_array = [1,1,2,1,2,3,1,2,3,4,1,2,3,4,5,....,1,2,3,4,5,6,7,8,9,10]

即遍历数组 a,获取第一个值(即 1),然后跳过剩余的 9,然后获取第一个和第二个值(即 1,2),然后跳过 剩余的 8 个,依此类推。

我想出的想法是创建索引并按以下方式使用它:

In [1]: indices = np.arange(1,10,1)
Out[1]: array([1, 2, 3, 4, 5, 6, 7, 8, 9])

new_array = []
for i in array:
for a,b in zip(indices,range(10)):
new_array.append(i[0:a]) # here I am including i[0:1], i[0:2] and so on

因此它遍历 array 并获取第一个值,然后跳过剩余的 9 个值,然后获取前两个值并跳过剩余的 8 个值,依此类推。

但这似乎行不通。我怎样才能做到这一点?

最佳答案

如果您不需要所有值(只传递您的方案)

list = [1,2,3,4,5,6,7,8,9,10] * 10
output = []

skip = 9
i = 0
while skip > 0:
output.append(list[i])
i += skip + 1
skip -= 1
print(list)
print(output)

但是你的“new_array”没有通过你的算法。为什么不:

[1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2 ,3,4,5,6,7,8,9,10]如果我在跳过 9 值后得到第一个 1(它有索引 0)我将得到 1,之后跳过 8 值我不会得到 2

编辑: 好的,我现在明白了。这应该有效:

list = [1,2,3,4,5,6,7,8,9,10] * 10
output = []

skip = 9
i = 0
j = 0
add = 1
while skip >= 0:
newList = list[i:j+1]
for x in newList:
output.append(x)
i += skip + add
j += skip + add + 1
add += 1
skip -= 1
print(output)

关于Python 通过跳过列表之间的值将值附加到空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47151148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com