首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将txt.file中的字符串与我的字典值(值为整数)进行比较并计算总和

如何将txt.file中的字符串与我的字典值(值为整数)进行比较并计算总和
EN

Stack Overflow用户
提问于 2021-01-12 06:16:47
回答 1查看 27关注 0票数 0

我的问题的标题可能有点困惑--也许是因为我自己也有点困惑。

我的任务是为一家餐厅创建一个小型的计费系统(这不是一个真正的餐厅)。我有3个文本文件。第一个是menu.txt。在该文件中,每一行都由菜名及其价格组成,用逗号分隔。然后我有两个订单文件order1.txt和order2.txt,每一行都包含菜单中已经订购的一项。

我自己对这个任务的建议是把菜单文件放到一个列表中,然后把它变成一个字典。

这是我的解决方案:

代码语言:javascript
运行
复制
def compute_total(mfile, ofile):
    dictionary = {}
    newlist = []
 
    with open('menu.txt') as f:
        for line in f:
            line = line.replace(',', '')
            newlist.append(line.split())
               
        for strings in newlist:
           dictionary[strings[0]] = strings[1]

我觉得我走在了正确的道路上,但我真的不知道如何在这里编写代码。因为我知道我想以某种方式查看,例如: order1是否在字典(菜单)中,然后计算菜肴的值(价格)。

我在想可能像下面这样,但它不工作,我被卡住了。

代码语言:javascript
运行
复制
    for k, v in dictionary.items():
        if int(k) in dictionary.items():
            Dvalues.append(v)

我希望你能给我一些建议,让我开始行动。我是一个新手,所以我真的希望你能花点时间帮助我解决这样的小问题(对你来说)。

致以最良好的问候,请参阅

EN

Stack Overflow用户

回答已采纳

发布于 2021-01-12 06:49:16

Python的csv包非常适合处理逗号分隔的文件。csv模块将能够将每一行转换为以前用逗号分隔的值列表,而不必手动解析每一行。然后,您可以使用并行赋值来获取每行的商品和价格,并将它们存储在字典中:

代码语言:javascript
运行
复制
with open('menu.txt') as f:
    for line in f:
        item, price = csv.reader(line, quotechar="'", delimiter=",")
        dictionary[item] = price

既然您已经在字典中存储了所有菜单项,您所要做的就是从其他文本文件中读取每个项目行,将该项目传递到您的字典,获取价格,并将其添加到总和中:

代码语言:javascript
运行
复制
order1_total = 0
with open(mfile) as f:
    for line in f:
        item = line      
        order1_total += dictionary[item]

不要忘记将import csv这一行添加到程序的顶部。希望它能帮上忙!祝好运!

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65675333

复制
相关文章

相似问题

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