我有必要自己做分类功能吗?

2024-10-04 05:32:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个脚本输入:姓名等级并将它们存储在一个类似students = [['name', 93.3]]的数组中,它需要一个由多个学生组成的列表,按升序对它们进行排序,然后按排序打印它们。我是一个编程初学者,所以我忍不住觉得有一种更简单的方法可以做到这一点,也许我错了,这就是它的基本原理。在

def SortList(aList):
    myList = list(aList)
    secSmallest = []
    #sorting
    for x in range(len(myList)-1):
        for _ in range(len(myList)-1):
            if myList[x][1] > myList[x+1][1]:
                smaller = myList[x+1][1]
                smallerName = myList[x+1][0]
                larger = myList[x][1]
                largerName = myList[x][0]
                myList[x][1] = smaller
                myList[x][0] = smallerName
                myList[x+1][1] = larger
                myList[x+1][0] = largerName
                element = x
                for _ in range(x):
                    if myList[element][1] < myList[element-1][1]:
                        smaller = myList[element][1]
                        smallerName = myList[element][0]
                        larger = myList[element-1][1]
                        largerName = myList[element-1][0]
                        myList[element][1] = larger
                        myList[element][0] = largerName
                        myList[element-1][1] = smaller
                        myList[element-1][0] = smallerName
                        element -= 1
                    else:
                        break
            else:
                break
    return myList

Tags: inforlenif排序rangeelementelse
3条回答
def SortList(aList):
    return sorted(aList, key=lambda el: el[1])

这里是对Python排序的一个很好的介绍:https://wiki.python.org/moin/HowTo/Sorting

在python中实现这一点的简单方法是使用python自己的排序函数。在

from operator import itemgetter
sorted_list = sorted(aList, key=itemgetter(1))

不过,您自己尝试实现排序对您自己是有好处的,尽管您的算法似乎需要一些润色。如果您想自己尝试实现一些简单的排序算法,请尝试阅读有关bubble sort的内容。在

可以使用排序方法:

students = [['name', 93.3]]
students.sort(key=lambda element: element[1]) # sort by score ascending

相关问题 更多 >