Я пишу генетический алгоритм и хочу случайным образом изменить число в списке.
Если бы у меня был список, например:
[1,2,3,4,5]
Как я могу взятьперечислите и измените только одно из чисел на случайные числа, например:
[1,2,7,4,5]
или
[1,3,3,4,5]
Любая помощь будет принята с благодарностью:)
Использовать random.randint:
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]
Используйте random.randint :
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)
Используйте random.randrange и random.randint:
random.randrange
>>> import random >>> index = random.randrange(len(mylist)) >>> mylist[index] = random.randint(minVal, maxVal)
Редактировать: если вы хотите всегда внести изменения (т.е. никогда не оставлять список без изменений), рассмотрим увеличение элемента на ненулевое значение:
>>> mylist[index] += random.choice([1, -1]) * random.randint(1, maxChange)