首先,我是python初学者,只是停留在简单的事情上。
我想根据另一个列表中的值,用随机创建的数字(按索引)替换列表中的某些元素。
预期输出将是:[3,2,2,1,3]
我下面的代码完全无法正常工作。
ori = [4,1,2,1,3] # some elements inside need to be changed
num_list = [2,1,1,1] # numbers that represent index in ori
import random
for num in range(len(num_list)):
ori[num-1]= random.randint(1,4)
# I want to replace element with previous one from given index
print(ori)
答案 0 :(得分:1)
我不知道您想做什么,但是这段代码看起来不错。为什么num_list包含数字“ 1” 3次?在此代码中,它将用一个随机数替换ori [1] 3次...好的ori [2]将被随机化一次。
ori = [4,1,2,1,3] # some elements inside need to be changed
num_list = [2,1,1,1] # numbers that represent index in ori
import random
for num in num_list:
ori[num]= random.randint(1,4)
print(ori)
答案 1 :(得分:0)
您遇到的问题是,您声明的num
变量只是num_list
中的位置,因此在这里您将在位置ori
上更改0, 1, 2, 3
(这就是将由您的range
代表)。
您将像这样修复代码:
ori = [4,1,2,1,3] # some elements inside need to be changed
num_list = [2,1,1,1] # numbers that represent index in ori
import random
for num in num_list:
ori[num-1]= random.randint(1,4)