用Python怎么将这个记事本前八行按以下规则排序啊?

#记事本(input.txt)内容如下:

  "The Canterbury Tales" by Chaucer, G.
 "The Canterbury Taless" by Chaucer, B.
 "Algorithms" by Sedgewick, R.
 "The C Programming Language" by Kernighan, B. and Ritchiee, D.
 "The C Programming Languag" by Kernighan, B. and Ritchiee, D.
 "The D Programming Language" by Kernighan, B. and Ritchiee, D.
 "A House for Mr. Biswas" by Naipaul, V.S.
 "A Congo Diary" by Naipaul, V.S.
 END

#说明:引号内是书名,by后面是作者名

#规则:作者名优先排序,作者名相同按书名排序

------谢谢各位大佬-------
 

import re

def fre(s):
    r = re.search(r'"(.+?)" by (.+)',s.strip())
    book = r.group(1)
    name = r.group(2)
    return (name,book)

with open(r'1.txt','r',encoding='utf-8') as f:
    li = f.readlines()
    li.sort(key=fre)
    print(*li,sep='')

你将每行数据的书名和作者提取出来,然后再对书名和作者排序,排序结果再找到对应内容

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y