一个适用于所有变量的计数器

one counter that works for all veriables

def my_function(account_1,account_2,initiall_amount,log):
    final_list = [account_1_current_balance,account_2_current_balance]
    return final_list
account_1 = 'abc'
account_2 = 'xyz'
initiall_amount = 1000
log = [('abc','xyz',800), ('abc','xyz',100),('xyz','abc',500)]

在下面的函数中,我想创建一个电子现金系统,其中我有发件人、收件人和初始金额,它们代表发件人和收件人中的初始金额(假设两者具有相同的金额)和日志显示接收方和发送方之间的交易。 这里的日志由具有元组的 trnsaction 组成,元组的第一个元素将是发送者,第二个将是接收者,第三个是必须发送的数量 现在我想在最终列表中打印当前余额
我可以通过为接收者和发送者生成每个计数器来解决这个问题,但我不希望每个接收者和发送者都有每个计数器,因为我可能有数百个接收者和发送者我只想要一个计数器,最后打印发送者和接收者帐户中的当前余额 就像上面的例子一样,包含当前余额的最终列表将是 [600,1400] 这里的600是account1的当前金额,1400是accoun2的 因为在bigning时account1中的金额是1000然后他发送800到acount2所以变成200然后他再发送100到acount2所以总数变成100之后他从account2收到500所以变成600 同样适用于account2 注意:我只想要一个柜台的这个

我不确定这是否是您想要的,但是通过将帐户设为字典,add/subtract 金额会更容易。

initial_amount = 1000
account = dict()
account['abc'] = initial_amount
account['xyz'] = initial_amount
logs = [('abc','xyz',800), ('abc','xyz',100),('xyz','abc',500)]

for log in logs:
    #subtract from sender
    account[log[0]] -= log[2]

    #add to receiver
    account[log[1]] += log[2]


print(account['abc']) #prints out 600
print(account['xyz']) #prints out 1400