我想从10个元素的数组A到100个元素的数组B。
从0到9的B的每个元素等于A的元素0
从10到19的B的每个元素等于A的元素1
....
从90到99的B的每个元素等于A的元素9
我做了下面的代码,但它不工作
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
A = np.asarray(a)
b = []
for i in range(len(A)*10):
b.append(0)
B = np.asarray(b)
for i in range(len(A)):
for j in range(9):
B[j]=A[i]
预期结果:
B [ 0,0,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2
...,
9,9,9,9,9,9,9,9,9,9 ]
9条答案
按热度按时间2vuwiymt1#
您只保存了前9个列表元素中的值。您必须通过将
i*10
添加到索引中来“缩放”它。wz1wpwve2#
这对我很有效:
您可以将
3
替换为10
或任何您喜欢的内容。回答雅各布的问题:
kqlmhetl3#
你应该尽可能地避免numpy循环,因为这会让你失去意义,这里你可以使用
repeat()
:乙:
如果想要一个嵌套列表,只需重新整形:
but5z9lq4#
可以使用numpy并指定每个元素的迭代次数:
或者,如果您不喜欢使用numpy,请用途:
给你通缉名单B
i2byvkas5#
试试这个:
lhcgjxsq6#
这个答案更好,来自lenik的想法
2skhul337#
用一行字回答:
print([item for sublist in [[i]*10 for i in range(1,10)] for item in sublist])
kx1ctssn8#
如果
a
是泛型列表而不是有序序列您可以执行以下操作
s71maibg9#