Хотя вы можете настроить вызов map
для передачи более одной переменной на каждый вызов функции, на самом деле это вам не поможет. Это потому, что вы хотите, чтобы значение dollars
было прочитано и изменено функцией. Единственный способ выполнить эту работу - это иметь как аргумент, так и возвращаемое значение, и большинство способов передать его map
не позволят вам использовать возвращаемое значение в качестве нового dollars
значения. для следующего звонка.
Если вы не возражаете отказаться от map
для явного цикла, вы можете заставить его работать:
def thingy(dollars, bill):
numOfBills = dollars // bill
dollars -= numOfBills * bill
return dollars, numOfBills # return a two-tuple
dollars = 568
billSelection = [100,50,20,10,5,1]
result = []
for bill in billSelection: # use an explicit loop instead of map
dollars, bill_count = thingy(dollars, bill) # so we can update dollars
result.append(bill_count)