TypeError:“ int”对象在我的代码行中无法下标

时间:2019-09-24 17:02:58

标签: python

我正在尝试建立气泡排序机制,但是当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行中无法下标

1 个答案:

答案 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)