这不是基于效率,并且只需具备非常非常基本的 Python 知识(字符串、元组、列表基础知识)即可完成,因此无需导入函数或使用排序/排序。 (这是使用Python 2.7.3)。
例如我有一个列表:
unsort_list = ["B", "D", "A", "E", "C"]
sort_list = []
sort_list 需要能够打印出来:
"A, B, C, D, E"
我可以用数字/整数来实现,对于按字母顺序排列的字符串有类似的方法吗?如果不是,您会推荐什么(即使它效率不高。)而不需要导入或排序功能。
最佳答案
这是 Quicksort 的一个非常简短的实现Python 中的算法:
def quicksort(lst):
if not lst:
return []
return (quicksort([x for x in lst[1:] if x < lst[0]])
+ [lst[0]] +
quicksort([x for x in lst[1:] if x >= lst[0]]))
这是一个玩具实现,易于理解,但效率太低,在实践中没有用处。它更多地是作为一个学术练习来展示如何以函数式编程风格简洁地编写排序问题的解决方案。它将适用于 comparable 的列表对象,特别是问题中的示例:
unsort_list = ['B', 'D', 'A', 'E', 'C']
sort_list = quicksort(unsort_list)
sort_list
> ['A', 'B', 'C', 'D', 'E']
关于Python:如何在没有排序函数的情况下对列表中的字母表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13101468/