Colab

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"},
]

bank_by_money = sorted(bank, key=lambda customer: customer['money'])

bank_by_money

[{'name': 'ben', 'money': -20, 'city': 'raanana'},
 {'name': 'fred', 'money': 50, 'city': 'yafo'},
 {'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'david', 'money': 250, 'city': 'nes-ziona'},
 {'name': 'carrie', 'money': 500, 'city': 'tel-aviv'},
 {'name': 'efrat', 'money': 1000, 'city': 'beer-sheeva'}]
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'}]
bank_by_money

[{'name': 'ben', 'money': -20, 'city': 'raanana'},
 {'name': 'fred', 'money': 50, 'city': 'yafo'},
 {'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'david', 'money': 250, 'city': 'nes-ziona'},
 {'name': 'carrie', 'money': 500, 'city': 'tel-aviv'},
 {'name': 'efrat', 'money': 1000, 'city': 'beer-sheeva'}]
bank_by_money[0]['city'] = 'eilat'

bank_by_money

[{'name': 'ben', 'money': -20, 'city': 'eilat'},
 {'name': 'fred', 'money': 50, 'city': 'yafo'},
 {'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'david', 'money': 250, 'city': 'nes-ziona'},
 {'name': 'carrie', 'money': 500, 'city': 'tel-aviv'},
 {'name': 'efrat', 'money': 1000, 'city': 'beer-sheeva'}]
bank

[{'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'ben', 'money': -20, 'city': 'eilat'},
 {'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'}]
bank2 = bank

bank2

[{'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'ben', 'money': -20, 'city': 'eilat'},
 {'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'}]
bank2.append({'name' : "greg", "money" : 10000, "city" : "NY"})

bank2


[{'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'ben', 'money': -20, 'city': 'eilat'},
 {'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'},
 {'name': 'greg', 'money': 10000, 'city': 'NY'}]
bank

[{'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'ben', 'money': -20, 'city': 'eilat'},
 {'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'},
 {'name': 'greg', 'money': 10000, 'city': 'NY'}]
bank_shallow_copy = bank[:]

del bank_shallow_copy[-1]

bank_shallow_copy

[{'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'ben', 'money': -20, 'city': 'eilat'},
 {'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'}]
bank

[{'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'ben', 'money': -20, 'city': 'eilat'},
 {'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'},
 {'name': 'greg', 'money': 10000, 'city': 'NY'}]
import copy

deep_copy_bank = copy.deepcopy(bank)

deep_copy_bank

[{'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'ben', 'money': -20, 'city': 'eilat'},
 {'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'},
 {'name': 'greg', 'money': 10000, 'city': 'NY'}]
deep_copy_bank[0]["money"] = 10000000000

deep_copy_bank

[{'name': 'avi', 'money': 10000000000, 'city': 'rehovot'},
 {'name': 'ben', 'money': -20, 'city': 'eilat'},
 {'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'},
 {'name': 'greg', 'money': 10000, 'city': 'NY'}]
bank

[{'name': 'avi', 'money': 100, 'city': 'rehovot'},
 {'name': 'ben', 'money': -20, 'city': 'eilat'},
 {'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'},
 {'name': 'greg', 'money': 10000, 'city': 'NY'}]
xxx = [[1] , [2], [3] ]

yyy = xxx[:]

yyy

[[1], [2], [3]]
yyy.append( [4])

yyy

[[1], [2], [3], [4]]
xxx

[[1], [2], [3]]
del yyy[0]

yyy

[[2], [3], [4]]
xxx

[[1], [2], [3]]
yyy[0][0] = "gotcha"

xxx

[[1], ['gotcha'], [3]]
zzz = copy.copy(xxx)

zzz.copy

<function list.copy>
help(zzz.copy)

Help on built-in function copy:

copy(...) method of builtins.list instance
    L.copy() -> list -- a shallow copy of L

zzz[0][0] = "shallow is not deep"

xxx

[['shallow is not deep'], ['gotcha'], [3]]