在Python中从主函数调用插入排序

时间:2019-06-14 17:29:17

标签: python python-3.x

我应该对十个数字进行插入排序,但是我应该从主要函数中进行插入。如果我为插入排序构建函数,该如何从主函数调用它?

我用程序底部的列表构建了一个插入排序功能。我不知道如何从主函数中调用sort函数。我很困惑,现在一团糟。

def main():
    aList =(29,23,19,6,26,16,12,27,3)
    unsortedList = sort_asc(aList)
    return unsortedList(mySortedList)
def sort_asc(aList):
    for index in range (1,len(aList)):
        value = aList[index]
        i = index - 1
        while i>=0 and (value < aList[i]):
            aList[i+1] = aList[i]
            aList[i] = value
            i = i - 1

if __name__ == '__main__':
    main()

我真的不知道我在做什么,也无法找到任何相关信息来指示正确的方向,所以我尝试了我认为可行的方法,但是最终做到了。我的错误消息中引用了第3行,第10行,第15行。 “元组对象不支持对象分配。”

1 个答案:

答案 0 :(得分:2)

代码中出现Somme问题

  • aList =(29,23,19,6,26,16,12,27,3)声明了一个tuple(用()括号声明),它们是不可变的,即它们不能就地修改,您想要的是一个{{3 }}(用[]括号声明),该变量是可变的,因此可以就地修改

  • 您想从if __name__ == '__main__':内调用函数,并想从该函数返回一个值

  • unsortedList(mySortedList)实际上将调用带有参数unsortedList的函数mySortedList,在您的情况下它们都不存在

因此,解决上述问题后,更新后的代码如下

def sort_asc(aList):
    for index in range (1,len(aList)):
        value = aList[index]
        i = index - 1
        while i>=0 and (value < aList[i]):
            aList[i+1] = aList[i]
            aList[i] = value
            i = i - 1

    #Return the sorted list
    return aList

if __name__ == '__main__':
    #Declare a list
    aList = [29, 23, 19, 6, 26, 16, 12, 27, 3]
    #Call the function and print the result
    print(sort_asc(aList))

输出将是

[3, 6, 12, 16, 19, 23, 26, 27, 29]