Python——读取文件和排序信息的函数

Python——读取文件和排序信息的函数,python,sorting,file-read,Python,Sorting,File Read,餐厅分类。文本文件scores.txt包含一系列本地餐厅评级。每一行看起来像这样: 餐厅名称:评级 我正试图编写一个程序,读取文件,然后按餐厅的字母顺序给出评级 以下是scores.rtf文件的内容: Pancho Villa:3 Andalu:3 Urbun Burger:1 El Toro:5 Casa Thai:2 Taqueria Cancun:2 Little Baobab:1 Charanga:3 Irma's Pampanga:5 Bay Blend Coffee and Tea:

餐厅分类。文本文件scores.txt包含一系列本地餐厅评级。每一行看起来像这样:

餐厅名称:评级

我正试图编写一个程序,读取文件,然后按餐厅的字母顺序给出评级

以下是scores.rtf文件的内容:

Pancho Villa:3
Andalu:3
Urbun Burger:1
El Toro:5
Casa Thai:2
Taqueria Cancun:2
Little Baobab:1
Charanga:3
Irma's Pampanga:5
Bay Blend Coffee and Tea:3
Giordano Bros:2
Two Amy's: 5
Chef Geoff: 3

我不知道从哪里开始。让我们仔细想想。您有一个常规格式的输入:名称和值,用冒号分隔
。您需要打开文件并读取每一行,然后将该行拆分为两部分,名称和值。考虑哪种数据结构最适合保存这些值。阅读并关闭文件后,只需按字母顺序对数据结构进行排序,然后打印出内容。够简单吗?

你的工作就是写一个程序
@inspectorG4dget-nah听起来更像是一个家庭作业。他在底部提到“我不知道从哪里开始”,所以我相信他的话。@AdamSmith:我是肯定的,但找不到讲义……这个问题似乎离题了,因为这不是一个代码编写服务,我更喜欢扔一些他不可能知道的东西,或者不必要的神秘导入(
来自hashlib import sha256
或etc)@AdamSmith:您是否错过了
排序中的
lambda
?现在编辑为使用运算符:PNo,这就是我更喜欢奥术导入的原因!:)噢
运算符。itemgetter
是一个很好的运算符。如果是
key=lambda x:[operator.itemgetter(0)(x)][0]
:)@AdamSmith:done,你将获得额外的分数!挺纵容的啊!!更多的困惑<代码>行.strip().split(chr(0b111010))
:D
import operator
with open('scores.txt') as infile:
    for stuff in sorted([line.strip().split(":") for line in infile], key=lambda iGotThisFromStackOverflow: [operator.itemgetter(0)(iGotThisFromStackOverflow)][0]):
        print(stuff)