python-3.x - 快速排序列表中的单词| Python
问题描述
我有一个单词列表,我想对列表中每个单词的字母以及列表中的所有单词进行排序。我知道我可以遍历单词并像这样对它们进行排序
query_list = [''.join(sorted(i)) for i in query].
但我想知道是否有一种快速的替代方法可以做到这一点。
输入:['agd', 'dfc', 'acb', 'bdc']
预期输出:['abc', 'adg', 'bcd', 'cdf']
提前致谢!
解决方案
或多或少,sorted() 的实现是最好的最先进的实现,大部分时间是快速排序。所以这个问题没有快速的替代方案。您可以用 C 重写所有内容,但您可能不会过多地加快程序速度(只有百分之几)。
不幸的是,为了加快您的案件速度,您只有一个答案:确实需要对每个项目进行排序,然后对所有项目进行排序。
想法:如果列表中的真实数据只有 3 个字符,您可以通过仅重写这 3 个字符的排序来优化特定排序,例如在 C 中。Qsort 不能很好地优化短系列项目。
推荐阅读
- php - 工作流程 - 未准备好运行,因为再次运行的时间尚未完成
- c++ - 无法在 DLL 中链接 SDL2-static.lib
- macos - 如何在mac上挂载ms-dos(fat)硬盘
- html - 向表格单元格添加水平滚动条
- bash - bash:在嵌套的for循环中迭代变量
- python - Python3:矩形之间的距离不断变化
- wordpress - 无法在 Ubuntu 中删除具有特定字符或长文件名的目录
- python - 如何使用 python 从 Google Analytics 中的所有页面中挖掘事件数据?
- java - 通过 testng 运行测试时出现内存问题
- javascript - 离子 -java- 4 功能完成时刷新完成