按后缀排序列表

Posted

技术标签:

【中文标题】按后缀排序列表【英文标题】:Sort list by suffix 【发布时间】:2021-07-15 19:47:41 【问题描述】:

我想学习如何按特定字符串结尾对我的纯文本文件进行排序,在本例中为后缀“ly”:

aback
abaft
abandonedly
abashedly
abeam
abed
abhorrently
... 

从这个列表中提取和/或拆分所有以“ly”结尾的单词,它应该类似于以下内容:

aback
abaft
abeam
abed
...
abandonedly
abashedly
abhorrently

注意:

新列表是否附加到旧列表中并不重要。 我希望我的列表保持按字母顺序排序,如果 可能。

我愿意使用编程语言、命令行或服务。事实是,根据我之前的在线研究,我无法确定哪种方法最有效或最简单地完成这种排序。

【问题讨论】:

【参考方案1】:

Python 中的解决方案:

with open("input.txt", "r") as f_in:
    lines = sorted(map(str.strip, f_in), key=lambda k: (k.endswith("ly"), k))

with open("output.txt", "w") as f_out:
    print("\n".join(lines), file=f_out)

来自input.txt

aback
abaft
abandonedly
abashedly
abeam
abed
abhorrently

创建output.txt:

aback
abaft
abeam
abed
abandonedly
abashedly
abhorrently

【讨论】:

以上是关于按后缀排序列表的主要内容,如果未能解决你的问题,请参考以下文章

Magento列表按属性排序按属性排序而不是值排序

按频率排序列表

用户按下排序按钮后如何在列表视图中显示排序列表?

将一个列表按另一个排序

如何按另一个列表对列表进行排序

Python:按“列”对列表进行排序[重复]