【问题标题】:Python: Check for certain item names in body of text and compare with list of pricesPython:检查文本正文中的某些项目名称并与价格列表进行比较
【发布时间】:2013-06-06 06:36:12
【问题描述】:

我想编写一个程序,通过文本体(在本例中为购物清单)搜索某些项目的名称(“烤豆”等)。然后,我希望它从列表或某些价格来源中检查这些商品的价格,并为购物清单创建总成本。我该怎么办?

【问题讨论】:

  • 你能用字典代替列表吗?如果是这样,我有一个可能的答案。

标签: python search


【解决方案1】:
list = '''baked beans
spaghetti'''
prices = {'baked beans': 1.20, 'spaghetti': 1.30}
pricelist = [ ]

for line in iter(list.splitlines()):
    price = prices[line]
    pricelist.append(price)

total = sum(pricelist)
print total

【讨论】:

    【解决方案2】:

    我不会假设您是如何格式化购物清单的。

    list = "your formatting here"
    prices = {
        "apple" : 0.99,
        "banana" : 0.29,
        "watermelon" : 4.99,
    }
    total = 0
    for item in prices:
        if item in list:
            cost += prices[item]
    

    if item in listlist 中搜索与item 等效的子字符串,这并不总是很快。但我对您的格式没有任何假设 - 如果您的项目不是多个单词(例如 toilet paper),那么您可以拆分 list 并遍历拆分列表中的每个元素。 @kirbyfan64sos 建议使用string.splitlines(),大致相当于string.split("\n")

    编辑:刚刚注意到您说“从列表或某些价格来源检查这些商品的价格”,所以我假设您可以使用dict 作为您的价格来源。如果没有,也许你可以使用listtuples...

    prices = [("apple", 0.99), ("banana", 0.29), ("watermelon", 4.99)]
    for item, price in prices:
        if item in list:
            cost += price
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-04-03
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 2017-08-06
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多