我正在尝试做一个排序(基于气泡排序),它将按字母顺序排列单词。然而,它不断地提出:
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))发布于 2017-02-24 12:23:07
i是一个整数,inp是要排序的数组。索引数组,而不是整数。
如果我正确地理解了你想要做的事情,那么你需要改变以下几点:
添加索引以获得所需的偏移量,如下所示:
inp[i[pos]] -> inp[i+pos]
inp[i+1[pos]] -> inp[i+1+pos]
https://stackoverflow.com/questions/42438509
复制相似问题