gpt4 book ai didi

Python,排序格式化输出

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:17 25 4
gpt4 key购买 nike

我编写了一个简短的程序,它读取一个文本文件,其中包含我喜欢的恐怖电影的名称、它们的发行日期以及我对它们的评分(每个都用冒号分隔)。然后,它使用 str.format() 在格式化输出中打印每个标题、发行日期和我的评分。我想知道如何对输出进行排序,例如按发布日期或评级。这是我所拥有的一些内容:

with open('filename', 'r') as fh:
for each_line in fh:
(title, date, rating)=each_line.split(':')
print('{0:^40} {1:^10} {2:^7}'.format(title, date, rating)

我只是想知道如何在格式化输出中引入排序;我只是似乎无法弄清楚。我是 Python 新手,也是自学新手,我确信这个简单的问题难倒了我。

如有任何提示,我们将不胜感激。

谢谢

最佳答案

如果您想对它们进行排序,则无法在循环遍历它们时打印它们:显然您必须知道每个值才能进行排序。

我建议首先将整个文件的内容加载到列表中:

movies = [each_line.split(':') for each_line in fh]

然后您可以按您想要的键进行排序。按评级排序:

sorted_movies = sorted(movies, key=lambda m: int(m[2])) # add reverse=True to sort descending

请注意,您需要转换为日期时间才能按日期正确排序。

然后您可以循环浏览这些排序的电影并打印:

for movie in sorted_movies:
(title, date, rating) = movie
print('{0:^40} {1:^10} {2:^7}'.format(title, date, rating)

稍微更紧凑:

movies = [line.split(':') for line in fh]
for title, date, rating in sorted(movies, lambda m: int(m[2])):
print('{0:^40} {1:^10} {2:^7}'.format(title, date, rating)

关于Python,排序格式化输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40224651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com