units_USD = [ {'name': 'Penny', 'value': 1, 'count': 0}, {'name': 'Nickel', 'value': 5, 'count': 0}, {'name': 'Dime', 'value': 10, 'count': 0}, {'name': 'Quarter', 'value': 25, 'count': 0}, {'name': 'One-dollar', 'value': 100, 'count': 0}, {'name': 'Five-dollar', 'value': 500, 'count': 0}, {'name': 'Ten-dollar', 'value': 1000, 'count': 0}, {'name': 'Fifty-dollar', 'value': 5000, 'count': 0}, {'name': 'Hundred-dollar', 'value': 10000, 'count': 0}, ] def currency_converter(amount, units=None): units = (units or units_USD).copy() amount = 100*amount for current in units[::-1]: while amount >= current['value']: amount -= current['value'] current['count'] += 1 return [i for i in units if i['count']] print(currency_converter(12.23))