随机 change/mutate 列表中的一个值
Randomly change/mutate one value in a list
我正在编写一个遗传算法,想随机改变列表中的一个数字。
如果我有一个列表,例如:
[1,2,3,4,5]
我怎样才能获取列表并将其中一个数字更改为随机数,例如:
[1,2,7,4,5]
或
[1,3,3,4,5]
使用random.randrange
and random.randint
:
>>> import random
>>> index = random.randrange(len(mylist))
>>> mylist[index] = random.randint(minVal, maxVal)
编辑:如果您想始终进行更改(即永远不要保持列表不变),请考虑增加 项目非零值:
>>> mylist[index] += random.choice([1, -1]) * random.randint(1, maxChange)
使用random.randint
:
l=[1,2,3,4,5]
import random
l[random.randint(0,len(l)-1)]=random.randint(min(l),max(l)-1)
现在:
print(l)
是(每次都不一样,这只是第一次输出):
[1, 4, 3, 4, 5]
import random
temp_list = [1,2,3,4,5]
temp_list[index_of_list] = random.randint(minValue, maxValue)
或者您可以这样尝试:
temp_list[random.randint(0, (len(temp_list))-1)] = random.randint(minValue, maxValue)
类似问题的不同处理方式,希望对不同观点有所帮助:)
只要我有 例如 混合字符串元素的列表,我就会使用枚举和一些随机选择函数(在我的例子中来自 Numpy)。 例如当我有不同原子的列表时,我想从中随机选择一个只有一种类型的原子,我可以写:
import numpy as np
mixed_atm_list = ["Pb", "C", "H", "Pb", "C", "C", "Sn", "H"]
random_choice_atm = "C"
find_idx = [idx for idx, atm in enumerate(mixed_atm_list) if atm == random_choice_atm]
randomly_selected_carbon_atom = np.random.choice(find_idx)
randomly_selected_carbon_atom = mixed_atm_list[randomly_selected_carbon_atom]
我正在编写一个遗传算法,想随机改变列表中的一个数字。
如果我有一个列表,例如:
[1,2,3,4,5]
我怎样才能获取列表并将其中一个数字更改为随机数,例如:
[1,2,7,4,5]
或
[1,3,3,4,5]
使用random.randrange
and random.randint
:
>>> import random
>>> index = random.randrange(len(mylist))
>>> mylist[index] = random.randint(minVal, maxVal)
编辑:如果您想始终进行更改(即永远不要保持列表不变),请考虑增加 项目非零值:
>>> mylist[index] += random.choice([1, -1]) * random.randint(1, maxChange)
使用random.randint
:
l=[1,2,3,4,5]
import random
l[random.randint(0,len(l)-1)]=random.randint(min(l),max(l)-1)
现在:
print(l)
是(每次都不一样,这只是第一次输出):
[1, 4, 3, 4, 5]
import random
temp_list = [1,2,3,4,5]
temp_list[index_of_list] = random.randint(minValue, maxValue)
或者您可以这样尝试:
temp_list[random.randint(0, (len(temp_list))-1)] = random.randint(minValue, maxValue)
类似问题的不同处理方式,希望对不同观点有所帮助:)
只要我有 例如 混合字符串元素的列表,我就会使用枚举和一些随机选择函数(在我的例子中来自 Numpy)。 例如当我有不同原子的列表时,我想从中随机选择一个只有一种类型的原子,我可以写:
import numpy as np
mixed_atm_list = ["Pb", "C", "H", "Pb", "C", "C", "Sn", "H"]
random_choice_atm = "C"
find_idx = [idx for idx, atm in enumerate(mixed_atm_list) if atm == random_choice_atm]
randomly_selected_carbon_atom = np.random.choice(find_idx)
randomly_selected_carbon_atom = mixed_atm_list[randomly_selected_carbon_atom]