#记事本(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