Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何实现自定义排序算法以接受python中的任何类型?_Python 3.x_Algorithm_Sorting - Fatal编程技术网

Python 3.x 如何实现自定义排序算法以接受python中的任何类型?

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

如果必须实现排序,如何使其接受任何类型的数据(列表、字符串、集合、字典或我自己的类类型)并对其进行排序?(不过,我是为列表做的)。我是OOPS新手,无法理解sorted()的大部分源代码,它是用“C”编写的

编辑

代码如下:

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,那么这是不可能的