Python 如何用随机数替换列表中的元素
首先,我是一个python初学者,只专注于简单的事情 我想根据另一个列表中的值,用随机创建的数字(按索引)替换列表中的一些元素 预期输出如下:[3,2,2,1,3] 我在下面的代码完全不能正常工作Python 如何用随机数替换列表中的元素,python,list,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
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)
我不知道你想做什么,但这段代码似乎很好。为什么num_列表包含3次数字“1”?在这段代码中,它将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)
问题是,您声明的
num
变量只是num\u列表中的位置,因此在这里您将更改ori
的位置0、1、2、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 num_list:
ori[num-1]= random.randint(1,4)
为什么范围(len(
如果num\u list
已经是要修改的索引?可能您也不应该允许在num\u list
中使用重复的索引(例如,使用set
而不是列表
)为什么索引1被提到了三次?你怎么能对你使用random的输出有期望呢?呃…我的意思是通过num\u列表中的每一项来获得要修改的值。我想你的意思是“for num in num\u list:”值1是重复的,应该只需要其中一项就可以修改。我给出的预期输出只是举个例子,我想更改[0]和[1]值