我需要使用氣泡排序方法對我的計算機科學類中的項目對元組進行排序。這些項目都是整數。如何將一個元組中的一個元素的值賦給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