Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 访问元组元素_Python_Oop - Fatal编程技术网

Python 访问元组元素

Python 访问元组元素,python,oop,Python,Oop,这个问题需要几个空间分隔的输入,将它们分割成一个元组列表,并返回产品的总成本乘以其数量。 在解决这个问题时,我陷入了方法成本的困境。这并没有给我正确的输出 我面临的问题是: 成本法并没有给出产品价格的总和 如果我打印元组列表-printpart2.create\u list\u of\u tuples;我得到了意想不到的元组列表。范例- 我的输入- 输入公式-sl.no.productquantityprice 输出- [(1, 'book', 3, 20), (1, 'book', 3, 20

这个问题需要几个空间分隔的输入,将它们分割成一个元组列表,并返回产品的总成本乘以其数量。 在解决这个问题时,我陷入了方法成本的困境。这并没有给我正确的输出

我面临的问题是:

成本法并没有给出产品价格的总和 如果我打印元组列表-printpart2.create\u list\u of\u tuples;我得到了意想不到的元组列表。范例- 我的输入-

输入公式-sl.no.productquantityprice

输出-

[(1, 'book', 3, 20), (1, 'book', 3, 20), (2, 'pen', 10, 5), (1, 'book', 3, 20), (2, 'pen', 10, 5), (3, 'notebook', 10, 10)]
实际产出应为-

Product price 210
[(1, 'book', 3, 20), (2, 'pen', 10, 5), (3, 'notebook', 10, 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())
每次添加新元素时,都会对tuplelist中已经存在的每个元素执行内部for循环

要么取消该循环,使其只运行一次,要么将新创建的元组存储在变量i中,并删除for循环语句,但不删除循环体

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())