我用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
这里是对Python排序的一个很好的介绍:https://wiki.python.org/moin/HowTo/Sorting
在python中实现这一点的简单方法是使用python自己的排序函数。在
不过,您自己尝试实现排序对您自己是有好处的,尽管您的算法似乎需要一些润色。如果您想自己尝试实现一些简单的排序算法,请尝试阅读有关bubble sort的内容。在
可以使用排序方法:
相关问题 更多 >
编程相关推荐