gpt4 book ai didi

python - 添加具有货币格式的变量以及搜索列表的最佳解决方案

转载 作者:行者123 更新时间:2023-11-30 22:34:00 25 4
gpt4 key购买 nike

我有以下代码:

完整代码列表:https://repl.it/JSUN/1

出于教学目的,我正在寻找两件事的最佳方法/解决方案:

Q1。使用货币变量,例如存储在下面的购物篮列表中的变量

basket=[['Iphone', '£900'], ['Samsung', '£1020'], ['Toshiba', '£700']]

在结帐子中,目的是将相应项目的成本添加在一起。

因此,如果购物篮包含上述元素,则所需的产出将为 900 英镑+1020 英镑+700 英镑=2620英镑

我尝试过各种方法,例如转换为整数,这显然不起作用,我想某种字符串操作可能是唯一的出路(这似乎不必要地复杂)。像 VB.Net 这样的语言具有货币数据类型,这将使​​这项任务变得相当简单。解决这个问题的Pythonic方法是什么?

Q2。 用于循环整个购物篮,以在结账时生成购物篮中的所有商品,而不仅仅是前 2 件

我尝试了这个,但没有成功:

  for items in basket:
print("Your total bill is:", basket[items][1])
items=items+1

这也是错误的:

for i in len(basket):
print("Your total bill is:", basket[i][1])

错误:

TypeError: 'int' object is not iterable

两个问题都是相关的,因为它们都与 checkout() 子程序相关,其中目标是添加篮子列表中的所有货币变量!

最佳答案

第一季度:

鉴于它仅用于基本教学目的,您可以去掉井号(假设一致的表示):

def extract_cost(money_in_pounds):
return int(money_in_pounds[1:])

basket = [['Iphone', '£900'], ['Samsung', '£1020'], ['Toshiba', '£700']]
total_cost = 0
for items in basket:
total_cost = total_cost + extract_cost(items[1])

print(total_cost)

无需编写其他函数

basket = [['Iphone', '£900'], ['Samsung', '£1020'], ['Toshiba', '£700']]
total_cost = 0
for items in basket:
# items[1] selects the cost
# items[1][1:] selects the sub-string of that cost from the 1st index to the end, i.e. remove the currency notation
# int() then converts it into an integer
cost_in_pounds = int(items[1][1:])
total_cost = total_cost + cost_in_pounds

print(total_cost)

更简洁的代码(下面由 Jon Clements 建议)

total_cost = sum(int(cost[1:]) for item_name, cost in basket)

第二季度:

items 不是索引,它是列表的内容,因此 items 本身就是内部列表:

for items in basket:
print("Your total bill is:", items[1])

关于python - 添加具有货币格式的变量以及搜索列表的最佳解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44977519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com