Python:如何在没有排序函数的情况下对列表中的字母表进行排序?

标签 python string list sorting alphabetical

这不是基于效率,并且只需具备非常非常基本的 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/

相关文章:

python - 对csv文件进行解析和分析

python - 在一次扫描中将 DataFrame 拆分为 2

python - 将 Python3 传递给 virtualenvwrapper 会抛出 ImportError

python - 将列转换为字符串,保留 NaN(无或空白)

string - 在字符串中搜索一组已定义的值

java - 格式字符串变为 xxx1、xx10 或 1###、10## 等

c - 将 typedef 枚举初始化为字符串

python - 我需要这个子字符串计数程序来返回一个元组

python - 如何获取列表列表中外部列表​​元素的索引?

python - TypeError: 'NoneType' 对象没有属性 '__getitem__'