我正在尝试建立气泡排序机制,但是当ium tryinbg使我想在变量中交换两个字符的部分出现错误时,这就是为什么我需要帮助
number = '562374'
for x in range(0,7,1):
y = x+1
if(number[x] > number[y]) :
number = int(number)
number[x], number[y]= number[y],number[x]
number = str(number)
print(number)
我希望结果是526374/623674/623647
但是我收到错误消息,提示TypeError:'int'对象在第6行中无法下标
答案 0 :(得分:1)
您不能使用带数字的下标。您也不能分配给字符串的下标,因为Python字符串是不可变的。
您需要做的是在开头将字符串转换为列表。然后,您可以交换列表元素,并在最后将它们重新加入。
number = '562374'
digits = list(number)
for x in range(len(digits)-1):
y = x+1
if(digits[x] > digits[y]) :
digits[x], digits[y] = digits[y], digits[x]
number = "".join(digits)
print(number)