如何用随机数替换列表中的元素

时间:2019-09-29 14:40:04

标签: python list

首先,我是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)

2 个答案:

答案 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)