我正在尝试进行排序(基于冒泡排序),这将按字母顺序对单词进行排序。然而,它不断提出:
TypeError:'int'对象不可订阅。
它说错误在第25行和第28行,但我无法弄清楚我做错了什么。我知道我可以使用.sort()
,但我想编写自己的排序功能。有什么建议吗?
代码是:
inp = input(r"Input: ")
inp = inp.split(" ")
def sort(inp):
fin = False
while not fin:
fin = True
pos = 0
for i in range(0,len(inp)-1):
if len(inp[i]) < len(inp[i+1]):
overLen = len(inp[i])
else:
overLen = len(inp[i])
if pos == overLen:
if len(inp[i]) < len(inp[i+1]):
inp[pos] = inp[i]
inp[pos+1] = inp[i+1]
else:
inp[pos] = inp[i+1]
inp[pos+1] = inp[i]
fin = False
elif inp[i[pos]] < inp[i+1[pos]]:
inp[pos] = inp[i]
inp[pos+1] = inp[i+1]
fin = False
elif inp[i[pos]] > inp[i+1[pos]]:
inp[pos] = inp[i+1]
inp[pos+1] = inp[i]
fin = False
else:
pos += 1
fin = False
return(inp)
print(sort(inp))
答案 0 :(得分:1)
i
是一个整数,inp
是您要排序的数组。您索引数组,而不是整数。
如果我理解你想要做的事情,那么这些就是你需要改变的事情:
添加索引以获得您想要的偏移量:
inp[i[pos]]
- &gt; inp[i+pos]
inp[i+1[pos]]
- &gt; inp[i+1+pos]