Мне нужно отсортировать элементы в кортеже, используя метод сортировки пузырьков для проекта в классе компьютерных наук. Элементы являются целыми числами.Как назначить значение одного элемента в кортеже другому в Python?
SwapAgain = True
while SwapAgain == True:
SwapAgain = False
for item in xrange(len(mytuple)):
if mytuple[item] > mytuple[item + 1]:
SwapAgain = True
temp = mytuple[item]
mytuple[item] = mytuple[item + 1]
mytuple[item + 1] = temp
return mytuple
Я пытаюсь присвоить значение одного элемента в кортеже к другому, но когда я пытаюсь код выше, я получаю эту ошибку:
mytuple[item] = mytuple[item + 1]
TypeError: 'tuple' object does not support item assignment
Я бы предпочел, чтобы использовать но мой учитель предоставил нам только определенный кортеж. Я очень ценю любую помощь, которую я могу получить. Благодаря!
Вы не можете назначить новый элемент позиции в существующем кортеже, периоде. По определению они неизменяемы, для этого нет обходного пути. Что вы можете сделать, так это создать новый кортеж со значениями или использовать список –
Поскольку кортежи неизменяемы, ваш собственный вариант будет создавать новый с элементами в том порядке, в котором вы хотите. Поскольку это может произойти несколько раз в процессе сортировки, преобразование кортежа в список один раз в самом начале, а затем преобразование конечного результата обратно в кортеж впоследствии будет более эффективным, чем выполнение его каждый раз, когда пара их будет заменена , – martineau