首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TyperError 'int‘对象不可订阅

TyperError 'int‘对象不可订阅
EN

Stack Overflow用户
提问于 2017-02-24 12:20:39
回答 1查看 1.1K关注 0票数 1

我正在尝试做一个排序(基于气泡排序),它将按字母顺序排列单词。然而,它不断地提出:

TypeError:'int‘对象不可订阅。

它说错误在第25行和第28行,但是我不知道我做错了什么。我知道我可以使用.sort(),但我想编写自己的排序函数。有什么建议吗?

守则是:

代码语言:javascript
运行
复制
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))
EN

Stack Overflow用户

发布于 2017-02-24 12:23:07

i是一个整数,inp是要排序的数组。索引数组,而不是整数。

如果我正确地理解了你想要做的事情,那么你需要改变以下几点:

添加索引以获得所需的偏移量,如下所示:

inp[i[pos]] -> inp[i+pos]

inp[i+1[pos]] -> inp[i+1+pos]

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42438509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档