簡體   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