【发布时间】:2013-06-06 06:36:12
【问题描述】:
我想编写一个程序,通过文本体(在本例中为购物清单)搜索某些项目的名称(“烤豆”等)。然后,我希望它从列表或某些价格来源中检查这些商品的价格,并为购物清单创建总成本。我该怎么办?
【问题讨论】:
-
你能用字典代替列表吗?如果是这样,我有一个可能的答案。
我想编写一个程序,通过文本体(在本例中为购物清单)搜索某些项目的名称(“烤豆”等)。然后,我希望它从列表或某些价格来源中检查这些商品的价格,并为购物清单创建总成本。我该怎么办?
【问题讨论】:
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
【讨论】:
我不会假设您是如何格式化购物清单的。
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 list 在list 中搜索与item 等效的子字符串,这并不总是很快。但我对您的格式没有任何假设 - 如果您的项目不是多个单词(例如 toilet paper),那么您可以拆分 list 并遍历拆分列表中的每个元素。 @kirbyfan64sos 建议使用string.splitlines(),大致相当于string.split("\n")。
编辑:刚刚注意到您说“从列表或某些价格来源检查这些商品的价格”,所以我假设您可以使用dict 作为您的价格来源。如果没有,也许你可以使用list 的tuples...
prices = [("apple", 0.99), ("banana", 0.29), ("watermelon", 4.99)]
for item, price in prices:
if item in list:
cost += price
【讨论】: