Python 3.x 如何实现自定义排序算法以接受python中的任何类型?
如果必须实现排序,如何使其接受任何类型的数据(列表、字符串、集合、字典或我自己的类类型)并对其进行排序?(不过,我是为列表做的)。我是OOPS新手,无法理解sorted()的大部分源代码,它是用“C”编写的 编辑 代码如下:Python 3.x 如何实现自定义排序算法以接受python中的任何类型?,python-3.x,algorithm,sorting,Python 3.x,Algorithm,Sorting,如果必须实现排序,如何使其接受任何类型的数据(列表、字符串、集合、字典或我自己的类类型)并对其进行排序?(不过,我是为列表做的)。我是OOPS新手,无法理解sorted()的大部分源代码,它是用“C”编写的 编辑 代码如下: class InsertionSort: def insertion_sort(it): for i in range(len(it)): j = i while j > 0 and
class InsertionSort:
def insertion_sort(it):
for i in range(len(it)):
j = i
while j > 0 and it[j] < it[j - 1]:
it[j], it[j-1] = it[j-1], it[j]
j -= 1
return it
it_ints = [9, 8, 7, 6, 5, 4, 3, 2, 1]
sorted_ints = InsertionSort.insertion_sort(it_ints)
类插入排序:
def插入_排序(it):
对于范围内的i(len(it)):
j=i
当j>0且it[j]
现在,如果我想传递其他数据结构呢?我可以将它们转换为列表,正如其中一个答案所说,但是,如何对字典或其他类型的数据进行排序
我正在寻找类似Java的东西
在Python中实现
PS:我实际上在上JAVA的Coursera的算法课程。我试图分析那里的讲座,并用python重新编写程序,特别是类实现。
需要帮助吗既然您已经提到了对列表进行排序的功能,为什么不试试这个呢
def yourSortingFunction(items):
#now that you're expecting them to be list:
items = list(items)
//your sorting code
注意:Python3.x中的偶数sorted()函数在传递(list、set、string)时返回一个已排序元素的列表,因为您在问题中询问了这3个元素,所以我建议使用此解决方案
欢迎评论和编辑。我不熟悉StackOverflow(和编码)。是的,我考虑过。但它不灵活。如果您想根据值或某些自定义类型的值对字典进行排序,比如file object,那么这是不可能的