bank = [
{"name" : "avi", "money" : 100, "city" : "rehovot"},
{"name" : "ben", "money" : -20, "city" : "raanana"},
{"name" : "carrie", "money" : 500, "city" : "tel-aviv"},
{"name" : "david", "money" : 250, "city" : "nes-ziona"},
{"name" : "efrat", "money" : 1000, "city" : "beer-sheeva"},
{"name" : "fred", "money" : 50, "city" : "yafo"},
]
import pprint
pprint.pprint(bank)
def select_name(customer):
return customer['name']
def select_city(customer):
return customer['city']
def select_money(customer):
return customer['money']
bank[0]
print(bank[1])
select_name(bank[0])
select_money(bank[0])
print(bank[1])
print(select_name(bank[1]))
print(select_money(bank[1]))
bank[0] < bank[1]
select_money(bank[0]) < select_money(bank[1])
sorted(bank)
sorted(bank, key=select_money)
sorted(bank, key=select_name)
sorted(bank, key=select_city)
lambda_select_name = lambda customer : customer['name']
lambda_select_money = lambda customer : customer['money']
print(bank[1])
print(lambda_select_name(bank[1]))
print(lambda_select_money(bank[1]))
sorted(bank, key=lambda_select_money)
sorted(bank, key=lambda customer: customer['city'])
def sort_the_bank(bank, mode="name"):
def select_name2(customer):
return customer['name']
def select_money2(customer):
return customer['money']
def select_city2(customer):
return customer['city']
if(mode == "name"):
return sorted(bank, key=select_name2)
elif mode == "money":
return sorted(bank, key=select_money2)
elif mode == "city":
return sorted(bank, key=select_city2)
else:
return "Error"
sort_the_bank(bank)
sort_the_bank(bank, "money")
select_name2
def sort_the_bank_lambda(bank, mode="name"):
select_name2 = lambda customer: customer['name']
select_money2 = lambda customer: customer['money']
select_city2 = lambda customer: customer['city']
if(mode == "name"):
return sorted(bank, key=select_name2)
elif mode == "money":
return sorted(bank, key=select_money2)
elif mode == "city":
return sorted(bank, key=select_city2)
else:
return "Error"
sort_the_bank_lambda(bank)
def sort_the_bank_short(bank, mode="name"):
def my_sorter(mode):
return lambda customer: customer[mode]
return sorted(bank, key=my_sorter(mode))
sort_the_bank_short(bank)
sort_the_bank_short(bank, "money")
def sort_the_bank_shorter(bank, mode="name"):
return sorted(bank, key=lambda customer: customer[mode])
sort_the_bank_shorter(bank, "money")