繁体   English   中英

如何对列表的内容进行排序?

[英]How to sort the contents of a list?

我有以下列表:

filenames=["SecretOfChimneys_1925.txt",
        "DeathInTheClouds_1935.txt",
        "SparklingCyanide_1945.txt",
        "HickoryDickoryDock_1955.txt",
        "AtBertramsHotel_1965.txt",
        "Curtain_1975.txt"]
books=[]
for filename in filenames:
    with open(filename) as fin:
        text=fin.read()
        books.append(text)

我需要列出按年份排序的书名,删除下划线字符和年份。 例如,第一本书的标题应该是“SecretOfChimneys”。 调用您的列表书名。

有没有办法使用书名已经按年份排序的事实,而只是 select 的瓷砖?

或者我应该使用带有文件名的排序算法?

任何帮助将不胜感激,谢谢!

排序时可以使用 lambda 作为键。 然后使用列表推导从排序列表中仅提取标题。

booktitles = [f.split('_')[0] for f in 
    sorted(filenames, key=lambda x: int(x.split('_')[1].split('.')[0]))
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM