首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python 3中创建排行榜,排行榜必须从最高到最低排序

在Python 3中创建排行榜,排行榜必须从最高到最低排序
EN

Stack Overflow用户
提问于 2019-05-05 00:18:25
回答 2查看 115关注 0票数 3

我需要在Python3中创建一个引导板,引导板的数据在一个外部的'.txt‘文件中。此外,排行榜必须从最高到最低排序。另外,你能不能以一种干净的排行榜格式来整理它--没有方括号、曲线括号和额外的逗号。我想也许可以使用数组或字典,但我真的不确定如何使用它

代码语言:javascript
复制
#this is a relevant snippet of my code

f = open("scores.txt", "r")
content = f.read()
content.sort()
print(content)
代码语言:javascript
复制
#this is the text file with the names and scores

Muaadh: 5
Yasir: 6
Zaim: 7
Ishfaq: 5
Tanzeel: 87
Hamzah: 3
Muhammed: 5
Muaadh: 6
Yasir: 5
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-07 02:41:18

我已经改进了@kdq0代码,现在它可以对双位、单位和负数混合排序。我还缩短了假定文本文件名为'Results.txt‘的code.This代码。

代码语言:javascript
复制
import csv

with open('Results.txt', newline='') as f:
  readData = csv.reader(f, delimiter= ':')
  sortScores = sorted(readData, key=lambda i: int(i[1]), reverse=True)
  for row in sortScores:
    print(row[0] +":" +row[1])
票数 2
EN

Stack Overflow用户

发布于 2019-05-05 01:02:20

在这里,假设您给出的数据在一个名为sort-test.txt的文件中,没有头文件:

代码语言:javascript
复制
import csv

with open('sort-test.txt', newline='') as f:
    data = [{k: v for k, v in row.items()} for row in csv.DictReader(f, delimiter=':', fieldnames=['name', 'score'], quoting=csv.QUOTE_NONE)]

sorted_data = sorted(data, key = lambda i: i['score'], reverse=True)
for x in sorted_data:
    print (x['name'] + ': ' + x['score'])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55984468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档