我应该对十个数字进行插入排序,但是我应该从主要函数中进行插入。如果我为插入排序构建函数,该如何从主函数调用它?
我用程序底部的列表构建了一个插入排序功能。我不知道如何从主函数中调用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行。 “元组对象不支持对象分配。”
答案 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]