如何解决访问元组的元素
此问题占用很少的空格分隔的输入(将它们分成元组列表),并且返回产品的总成本乘以其数量。
解决此问题时,我陷入了方法Cost
中。这没有给我正确的输出。
我面临的问题:
- 成本方法不能给我产品价格的总和
- 如果我打印元组列表-
print(part2.create_list_of_tuples())
;我收到了意外的元组列表。示例-
我给定的输入-
输入公式-sl.no.<space>product<space>quantity<space>price
Enter an entry: 1 book 3 20
Enter an entry: 2 pen 10 5
Enter an entry: 3 notebook 10 10
Enter an entry: 0
输出-
[(1,'book',3,20),(1,(2,'pen',10,5),(3,'notebook',10)]
实际输出应为-
Product price 210
[(1,10)]
有人可以帮我解决这个问题吗?
class products:
def __init__(self):
self.sl_no = list()
self.item_name = list()
self.purchase_amount = list()
self.purchase_cost = list()
self.list_of_tuples = list()
def create_list_of_tuples(self):
self.list_of_tuples = list(zip(self.sl_no,self.item_name,self.purchase_amount,self.purchase_cost))
return self.list_of_tuples
def Cost(self):
Sum_purchase_cost = 0
for j in self.list_of_tuples:
Sum_purchase_cost += ((j[2]) * (j[3]))
print(f"Product price {Sum_purchase_cost}")
part2=product()
tuplelist = []
while True:
a = input('Enter an entry: ')
if a == str(0):
break
tuplelist.append(tuple(a.strip().split()))
for i in tuplelist:
part2.sl_no.append(int(i[0]))
part2.item_name.append(i[1])
part2.purchase_amount.append(int(i[2]))
part2.purchase_cost.append(int(i[3]))
part2.Cost()
print(part2.create_list_of_tuples())
解决方法
每次添加新元素时,for
中已经存在的每个元素都会执行内部tuplelist
循环。
要么取消该循环的缩进(以使其仅运行一次),要么将新创建的元组存储在变量i
中,然后删除for
循环语句(而不是循环体)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。