Can you please help me fix the (TypeError: list indices must be integers or slices, not str) in the code

Can you please help me fix the (TypeError: list indices must be integers or slices, not str) in the code

entry = [["D 300"],["D 300"],["W 200"],["D 100"]]
def bankbalance(entry):
    deposits = [float(entry[ent][0][2:]) for ent in entry if ("D" in entry[ent][0])]
    withdrawals = [float(entry[ent][0][2:]) for ent in entry if ("W" in entry[ent][0])]
    
    global balance
    balance = sum(deposits) - sum(withdrawals)

bankbalance(entry) 
Print(f'Current balance is {balance}') 
TypeError                                 Traceback (most recent call last)
<ipython-input-40-003e60035a3a> in <module>
      9     balance = sum(deposits) - sum(withdrawals)
     10 
---> 11 bankbalance(entry)
     12 Print(f'Current balance is {balance}')
     13 

<ipython-input-40-003e60035a3a> in bankbalance(entry)
      1 entry = ["D 300","D 300","W 200","D 100"]
      2 def bankbalance(entry):
----> 3     deposits = [float(entry[ent][0][2:]) for ent in entry if ("D" in entry[ent][0])]
      4     withdrawals = [float(entry[ent][0][2:]) for ent in entry if ("W" in entry[ent][0])]
      5 

<ipython-input-40-003e60035a3a> in <listcomp>(.0)
      1 entry = ["D 300","D 300","W 200","D 100"]
      2 def bankbalance(entry):
----> 3     deposits = [float(entry[ent][0][2:]) for ent in entry if ("D" in entry[ent][0])]
      4     withdrawals = [float(entry[ent][0][2:]) for ent in entry if ("W" in entry[ent][0])]
      5 

TypeError: list indices must be integers or slices, not str

ent不是索引,是entry的一个元素,所以不需要entry[ent][0][2:],需要的是ent[0][2:].

固定代码:

entry = [["D 300"],["D 300"],["W 200"],["D 100"]]
def bankbalance(entry):
    deposits = [float(ent[0][2:]) for ent in entry if ("D" in ent[0])]
    withdrawals = [float(ent[0][2:]) for ent in entry if ("W" in ent[0])]    
    global balance
    balance = sum(deposits) - sum(withdrawals)

bankbalance(entry) 
print(f'Current balance is {balance}') 

输出:500.0