猿问

Python在一定范围内替换数组中的元素

我有一个数组,例如:

Array = [100]*100

然后我要这样做:

Array[0:10] = 1

数组应如下所示:

Array = [1,1,1,1,1,1,1,1,1,1,100,100....,100]

但是Python说不,给了我

Array[0:10] = 1 can only assign an iterable

它想要什么,我该如何解决?


拉丁的传说
浏览 639回答 3
3回答

繁花如伊

您可以使用array[0:10] = [1] * 10,只需要制作一个要替换的切片大小的数组即可。

大话西游666

另一种方法是将列表转换为numpy数组,并且numpy会将您的值广播到数组的整个部分:import numpy as npa = np.array([100]*100)a[0:10] = 1print(a)# array([  1,   1,   1,   1,   1,   1,   1,   1,   1,   1, 100, 100, 100,#        100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,#        ... #       ])

qq_遁去的一_1

我给你一个例子,列出:L = [0 for k in range(100)] # List of 0L[10:20] = [1 for k in range(10)]# Output:L = [0, ..., 0, 1, 1, ..., 1, 0, ..., 0]您还需要提供一个列表来替换N个值。
随时随地看视频慕课网APP

相关分类

Python
我要回答