【发布时间】:2014-01-08 02:47:17
【问题描述】:
我需要对我的计算机科学课上的一个项目使用冒泡排序方法对元组中的项目进行排序。项目都是整数。
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' 对象不支持项目分配
我更喜欢使用列表,但我的老师只为我们提供了一个特定的元组。我非常感谢我能得到的任何帮助。谢谢!
【问题讨论】:
-
您不能将新项目分配给现有元组期间的位置。根据定义,它们是不可变的,没有解决方法。您可以做的是使用值创建一个新元组或使用列表
-
由于元组是不可变的,您自己的选择是按照您想要的顺序创建一个包含项目的新元组。由于这可能会在排序过程中发生多次,因此在开始时将元组转换为列表一次,然后将最终结果转换回元组比每次交换一对元组时都更有效.
标签: python tuples bubble-sort