武汉理工大学实验九第四关

任务描述

本关任务:根据附件文件,创建字典并实现按照分类进行查询的功能。

附件中文件名为menu.csv,编码格式为UTF-8。数据为csv格式(文本),各数据项之间以逗号,分隔‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

文件包含某餐饮品牌店中的菜品以及各菜品对应的相关成分数据(包含菜品分类Category,菜品名称Item,菜品份量Serving Size,卡路里Calories,总脂肪Total Fat等) 文件内容示例:

,

代码模板已经实现了文件读取所有数据,并存为列表ls,根据测试要求完成代码。

编程要求

将数据列表ls中部分数据创建为字典: key为序号(整数),按照文件顺序,从1开始依次递增,每次递增1。 value为列表,包含菜品分类Category,菜品名称Item两组数据 输入n:

  1. 如果输入的n为一个文件中的菜品分类Category,则按照文件内数据顺序,输出数据字典中所有属于该分类的数据内容及数据总数量。每行输出字典中一个键值对,键key与值value之间用' : '间隔,值value列表中的数据间都以一个英文空格间隔。
  2. 如果输入为字典的key值,则在一行内输出该key对应的数据,以一个英文空格间隔
  3. 如果非以上输入,则输出n Not Foundn为输入的数据。

测试说明

平台会对你编写的代码进行测试:

测试输入: Breakfast 预期输出: 1 : Breakfast Egg McMuffin 2 : Breakfast Egg White Delight 3 : Breakfast Sausage McMuffin ... ... ... ... 41 : Breakfast Fruit & Maple Oatmeal 42 : Breakfast Fruit & Maple Oatmeal without Brown Sugar 42

测试输入: 12 预期输出: Breakfast Sausage Biscuit (Large Biscuit)

测试输入: COFFEE 预期输出: COFFEE Not Found


开始你的任务吧,祝你成功!

答案如下:

def fopen():  

    '''本函数不允许修改,功能说明:

    fopen()读取文件并返回二维列表l,数据格式为:    

    [['Rank', 'Name', 'Pay', 'Salary/Winnings', 'Endorsements', 'Sport', 'Year'],

     ['1', 'Lionel Messi', '$127 M', '$92 M', '$35 M', 'Soccer', '2019']

     ['2', 'Cristiano Ronaldo', '$109 M', '$65 M', '$44 M', 'Soccer', '2019'], ...]

    '''

    l=[]

    with open('step7/2012-19sport.csv','r',encoding='UTF-8') as f:

        for i in f.readlines():

            l.append(i.strip().strip('#').split(','))

    return l

ls=fopen()

year=input()

s=set()

for i in ls:

    if year in i:

        s.add(i[-2])

if len(s)==0:

    print(f'No Record of {year}')    

else:

    ls_year_sports=sorted(s)

    [print(*i) for i in enumerate(ls_year_sports,start=1)]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值