]


In [9]: from importlib import reload


In [10]: reload(lezione08)

Out[10]: <module 'lezione08' from '/home/andrea/Documents/Uni/Didattica/Prog1/2021-22/Lezioni/lezione08-21-10-21/lezione08.py'>


In [11]: lezione08.cerca_lineare(lezione08.agenda, 'nome', 'Trudy')

Out[11]:

{'nome': 'Trudy',

'cognome': 'Gambadilegno',

'telefono': '555-66666',

'indirizzo': 'via dei Ladri 13',

'città': 'Topolinia'}


In [12]: lezione08.cerca_lineare(lezione08.agenda, 'città', 'Roma')


In [13]: lezione08.cerca_lineare(lezione08.agenda, 'città', 'Paperopoli')

Out[13]:

{'nome': 'Paperino',

'cognome': 'Paolino',

'telefono': '555-1313',

'indirizzo': 'via dei Peri 113',

'città': 'Paperopoli'}


In [14]: lezione08.cerca_multicolonna_lineare(lezione08.agenda, {'città': 'Paperopoli'})

Traceback (most recent call last):


File "/tmp/ipykernel_45067/659327498.py", line 1, in <module>

lezione08.cerca_multicolonna_lineare(lezione08.agenda, {'città': 'Paperopoli'})


File "/home/andrea/Documents/Uni/Didattica/Prog1/2021-22/Lezioni/lezione08-21-10-21/lezione08.py", line 53, in cerca_multicolonna_lineare

if corrisponde_alla_query(record, query):


File "/home/andrea/Documents/Uni/Didattica/Prog1/2021-22/Lezioni/lezione08-21-10-21/lezione08.py", line 72, in corrisponde_alla_query

for colonna, valore in query.item():


AttributeError: 'dict' object has no attribute 'item'



In [15]: reload(lezione08)

Out[15]: <module 'lezione08' from '/home/andrea/Documents/Uni/Didattica/Prog1/2021-22/Lezioni/lezione08-21-10-21/lezione08.py'>


In [16]: lezione08.cerca_multicolonna_lineare(lezione08.agenda, {'città': 'Paperopoli'})

Out[16]:

[{'nome': 'Pietro',

'cognome': 'Gambadilegno',

'telefono': '555-66666',

'indirizzo': 'via dei Ladri 13',

'città': 'Topolinia'},

{'nome': 'Trudy',

'cognome': 'Gambadilegno',

'telefono': '555-66666',

'indirizzo': 'via dei Ladri 13',

'città': 'Topolinia'},

{'nome': 'Topolino',

'cognome': 'Mouse',

'telefono': '555-12345',

'indirizzo': 'via degli Investigatori 1',

'città': 'Topolinia'},

{'nome': 'Minnie',

'cognome': 'Mouse',

'telefono': '555-54321',

'indirizzo': 'via di M.me Curie 1',

'città': 'Topolinia'},

{'nome': 'Pippo',

'cognome': "de' Pippis",

'telefono': '555-33333',

'indirizzo': 'via dei Pioppi 1',

'città': 'Topolinia'}]


In [17]: reload(lezione08)

Out[17]: <module 'lezione08' from '/home/andrea/Documents/Uni/Didattica/Prog1/2021-22/Lezioni/lezione08-21-10-21/lezione08.py'>


In [18]: lezione08.cerca_multicolonna_lineare(lezione08.agenda, {'città': 'Paperopoli'})

Out[18]:

[{'nome': 'Paperino',

'cognome': 'Paolino',

'telefono': '555-1313',

'indirizzo': 'via dei Peri 113',

'città': 'Paperopoli'},

{'nome': 'Gastone',

'cognome': 'Paperone',

'telefono': '555-1717',

'indirizzo': 'via dei Baobab 42',

'città': 'Paperopoli'},

{'nome': 'Paperon',

'cognome': "de' Paperoni",

'telefono': '555-99999',

'indirizzo': 'colle Papero 1',

'città': 'Paperopoli'},

{'nome': 'Archimede',

'cognome': 'Pitagorico',

'telefono': '555-11235',

'indirizzo': 'colle degli Inventori 1',

'città': 'Paperopoli'}]


In [19]: lezione08.cerca_multicolonna_lineare(lezione08.agenda, {'città': 'Paperopoli', 'telefono': '555-99999'})

Out[19]:

[{'nome': 'Paperon',

'cognome': "de' Paperoni",

'telefono': '555-99999',

'indirizzo': 'colle Papero 1',

'città': 'Paperopoli'}]


In [20]: reload(lezione08)

Out[20]: <module 'lezione08' from '/home/andrea/Documents/Uni/Didattica/Prog1/2021-22/Lezioni/lezione08-21-10-21/lezione08.py'>


In [21]: lezione08.cerca_multicolonna_lineare_LC(lezione08.agenda, {'città': 'Paperopoli', 'telefono': '555-99999'})

Out[21]:

[{'nome': 'Paperon',

'cognome': "de' Paperoni",

'telefono': '555-99999',

'indirizzo': 'colle Papero 1',

'città': 'Paperopoli'}]


In [22]: lezione08.cerca_multicolonna_lineare_LC(lezione08.agenda, {'città': 'Paperopoli'})

Out[22]:

[{'nome': 'Paperino',

'cognome': 'Paolino',

'telefono': '555-1313',

'indirizzo': 'via dei Peri 113',

'città': 'Paperopoli'},

{'nome': 'Gastone',

'cognome': 'Paperone',

'telefono': '555-1717',

'indirizzo': 'via dei Baobab 42',

'città': 'Paperopoli'},

{'nome': 'Paperon',

'cognome': "de' Paperoni",

'telefono': '555-99999',

'indirizzo': 'colle Papero 1',

'città': 'Paperopoli'},

{'nome': 'Archimede',

'cognome': 'Pitagorico',

'telefono': '555-11235',

'indirizzo': 'colle degli Inventori 1',

'città': 'Paperopoli'}]


In [23]: lezione08.cerca_multicolonna_lineare_filter(lezione08.agenda, {'città': 'Paperopoli', 'telefono': '555-99999'})

Out[23]: <filter at 0x7f53cc2f6b80>


In [24]: reload(lezione08)

Out[24]: <module 'lezione08' from '/home/andrea/Documents/Uni/Didattica/Prog1/2021-22/Lezioni/lezione08-21-10-21/lezione08.py'>


In [25]: lezione08.cerca_multicolonna_lineare_filter(lezione08.agenda, {'città': 'Paperopoli', 'telefono': '555-99999'})

Out[25]:

[{'nome': 'Paperon',

'cognome': "de' Paperoni",

'telefono': '555-99999',

'indirizzo': 'colle Papero 1',

'città': 'Paperopoli'}]


In [26]: lezione08.cerca_multicolonna_lineare_filter(lezione08.agenda, {'città': 'Paperopoli'})

Out[26]:

[{'nome': 'Paperino',

'cognome': 'Paolino',

'telefono': '555-1313',

'indirizzo': 'via dei Peri 113',

'città': 'Paperopoli'},

{'nome': 'Gastone',

'cognome': 'Paperone',

'telefono': '555-1717',

'indirizzo': 'via dei Baobab 42',

'città': 'Paperopoli'},

{'nome': 'Paperon',

'cognome': "de' Paperoni",

'telefono': '555-99999',

'indirizzo': 'colle Papero 1',

'città': 'Paperopoli'},

{'nome': 'Archimede',

'cognome': 'Pitagorico',

'telefono': '555-11235',

'indirizzo': 'colle degli Inventori 1',

'città': 'Paperopoli'}]


In [27]: reload(lezione08)

Out[27]: <module 'lezione08' from '/home/andrea/Documents/Uni/Didattica/Prog1/2021-22/Lezioni/lezione08-21-10-21/lezione08.py'>


In [28]: lezione08.cerca_multicolonna_lineare_lambda(lezione08.agenda, {'città': 'Paperopoli'})

Out[28]:

[{'nome': 'Paperino',

'cognome': 'Paolino',

'telefono': '555-1313',

'indirizzo': 'via dei Peri 113',

'città': 'Paperopoli'},

{'nome': 'Gastone',

'cognome': 'Paperone',

'telefono': '555-1717',

'indirizzo': 'via dei Baobab 42',

'città': 'Paperopoli'},

{'nome': 'Paperon',

'cognome': "de' Paperoni",

'telefono': '555-99999',

'indirizzo': 'colle Papero 1',

'città': 'Paperopoli'},

{'nome': 'Archimede',

'cognome': 'Pitagorico',

'telefono': '555-11235',

'indirizzo': 'colle degli Inventori 1',

'città': 'Paperopoli'}]


In [29]: dict.items?

Docstring: D.items() -> a set-like object providing a view on D's items

Type: method_descriptor


In [30]: lezione08.agenda

Out[30]:

[{'nome': 'Paperino',

'cognome': 'Paolino',

'telefono': '555-1313',

'indirizzo': 'via dei Peri 113',

'città': 'Paperopoli'},

{'nome': 'Gastone',

'cognome': 'Paperone',

'telefono': '555-1717',

'indirizzo': 'via dei Baobab 42',

'città': 'Paperopoli'},

{'nome': 'Paperon',

'cognome': "de' Paperoni",

'telefono': '555-99999',

'indirizzo': 'colle Papero 1',

'città': 'Paperopoli'},

{'nome': 'Archimede',

'cognome': 'Pitagorico',

'telefono': '555-11235',

'indirizzo': 'colle degli Inventori 1',

'città': 'Paperopoli'},

{'nome': 'Pietro',

'cognome': 'Gambadilegno',

'telefono': '555-66666',

'indirizzo': 'via dei Ladri 13',

'città': 'Topolinia'},

{'nome': 'Trudy',

'cognome': 'Gambadilegno',

'telefono': '555-66666',

'indirizzo': 'via dei Ladri 13',

'città': 'Topolinia'},

{'nome': 'Topolino',

'cognome': 'Mouse',

'telefono': '555-12345',

'indirizzo': 'via degli Investigatori 1',

'città': 'Topolinia'},

{'nome': 'Minnie',

'cognome': 'Mouse',

'telefono': '555-54321',

'indirizzo': 'via di M.me Curie 1',

'città': 'Topolinia'},

{'nome': 'Pippo',

'cognome': "de' Pippis",

'telefono': '555-33333',

'indirizzo': 'via dei Pioppi 1',

'città': 'Topolinia'}]


In [31]: R = {'nome': 'Pippo',

    ...: 'cognome': "de' Pippis",

    ...: 'telefono': '555-33333',

    ...: 'indirizzo': 'via dei Pioppi 1',

    ...: 'città': 'Topolinia'}


In [32]: list(R.items())

Out[32]:

[('nome', 'Pippo'),

('cognome', "de' Pippis"),

('telefono', '555-33333'),

('indirizzo', 'via dei Pioppi 1'),

('città', 'Topolinia')]


In [33]: for chiave,valore in R.items():

    ...: print(chiave, valore)

    ...:


Output from spyder call 'get_cwd':


Output from spyder call 'get_cwd':


Output from spyder call 'get_cwd':

nome Pippo

cognome de' Pippis

telefono 555-33333

indirizzo via dei Pioppi 1

città Topolinia


In [34]: R

Out[34]:

{'nome': 'Pippo',

'cognome': "de' Pippis",

'telefono': '555-33333',

'indirizzo': 'via dei Pioppi 1',

'città': 'Topolinia'}


In [35]: R['nome']

Out[35]: 'Pippo'


In [36]: R['fjfh']

Traceback (most recent call last):


File "/tmp/ipykernel_45067/733170347.py", line 1, in <module>

R['fjfh']


KeyError: 'fjfh'



In [37]: R['città']

Out[37]: 'Topolinia'


In [38]: ',jehk' in R

Out[38]: False


In [39]: 'città' in R

Out[39]: True


In [40]: 'Topolinia' in R.values()

Out[40]: True


In [41]: R

Out[41]:

{'nome': 'Pippo',

'cognome': "de' Pippis",

'telefono': '555-33333',

'indirizzo': 'via dei Pioppi 1',

'città': 'Topolinia'}


In [42]: 'cognome' in R.keys()

Out[42]: True


In [43]: 'cognome' in R

Out[43]: True


In [44]: 'cognome' in R.values()

Out[44]: False


In [45]: '555-33333' in R

Out[45]: False


In [46]: '555-33333' in R.values()

Out[46]: True


In [47]: A = 45


In [48]: B = 35 if A > 30 else 47


In [49]: B

Out[49]: 35


In [50]: A = 22


In [51]: B = 35 if A > 30 else 47


In [52]: B

Out[52]: 47


In [53]: if A > 30:

    ...: B = 35

    ...: else:

    ...: B = 47

    ...:


In [54]: B

Out[54]: 47


In [55]: reload(lezione08)

Out[55]: <module 'lezione08' from '/home/andrea/Documents/Uni/Didattica/Prog1/2021-22/Lezioni/lezione08-21-10-21/lezione08.py'>


In [56]: lezione08.ordina_rispetto_a_colonna(lezione08.agenda, 'città')

Out[56]:

[{'nome': 'Paperino',

'cognome': 'Paolino',

'telefono': '555-1313',

'indirizzo': 'via dei Peri 113',

'città': 'Paperopoli'},

{'nome': 'Gastone',

'cognome': 'Paperone',

'telefono': '555-1717',

'indirizzo': 'via dei Baobab 42',

'città': 'Paperopoli'},

{'nome': 'Paperon',

'cognome': "de' Paperoni",

'telefono': '555-99999',

'indirizzo': 'colle Papero 1',

'città': 'Paperopoli'},

{'nome': 'Archimede',

'cognome': 'Pitagorico',

'telefono': '555-11235',

'indirizzo': 'colle degli Inventori 1',

'città': 'Paperopoli'},

{'nome': 'Pietro',

'cognome': 'Gambadilegno',

'telefono': '555-66666',

'indirizzo': 'via dei Ladri 13',

'città': 'Topolinia'},

{'nome': 'Trudy',

'cognome': 'Gambadilegno',

'telefono': '555-66666',

'indirizzo': 'via dei Ladri 13',

'città': 'Topolinia'},

{'nome': 'Topolino',

'cognome': 'Mouse',

'telefono': '555-12345',

'indirizzo': 'via degli Investigatori 1',

'città': 'Topolinia'},

{'nome': 'Minnie',

'cognome': 'Mouse',

'telefono': '555-54321',

'indirizzo': 'via di M.me Curie 1',

'città': 'Topolinia'},

{'nome': 'Pippo',

'cognome': "de' Pippis",

'telefono': '555-33333',

'indirizzo': 'via dei Pioppi 1',

'città': 'Topolinia'}]


In [57]: lezione08.ordina_rispetto_a_colonna(lezione08.agenda, 'telefono')

Out[57]:

[{'nome': 'Archimede',

'cognome': 'Pitagorico',

'telefono': '555-11235',

'indirizzo': 'colle degli Inventori 1',

'città': 'Paperopoli'},

{'nome': 'Topolino',

'cognome': 'Mouse',

'telefono': '555-12345',

'indirizzo': 'via degli Investigatori 1',

'città': 'Topolinia'},

{'nome': 'Paperino',

'cognome': 'Paolino',

'telefono': '555-1313',

'indirizzo': 'via dei Peri 113',

'città': 'Paperopoli'},

{'nome': 'Gastone',

'cognome': 'Paperone',

'telefono': '555-1717',

'indirizzo': 'via dei Baobab 42',

'città': 'Paperopoli'},

{'nome': 'Pippo',

'cognome': "de' Pippis",

'telefono': '555-33333',

'indirizzo': 'via dei Pioppi 1',

'città': 'Topolinia'},

{'nome': 'Minnie',

'cognome': 'Mouse',

'telefono': '555-54321',

'indirizzo': 'via di M.me Curie 1',

'città': 'Topolinia'},

{'nome': 'Pietro',

'cognome': 'Gambadilegno',

'telefono': '555-66666',

'indirizzo': 'via dei Ladri 13',

'città': 'Topolinia'},

{'nome': 'Trudy',

'cognome': 'Gambadilegno',

'telefono': '555-66666',

'indirizzo': 'via dei Ladri 13',

'città': 'Topolinia'},

{'nome': 'Paperon',

'cognome': "de' Paperoni",

'telefono': '555-99999',

'indirizzo': 'colle Papero 1',

'città': 'Paperopoli'}]


In [58]: reload(lezione08)

Out[58]: <module 'lezione08' from '/home/andrea/Documents/Uni/Didattica/Prog1/2021-22/Lezioni/lezione08-21-10-21/lezione08.py'>


In [59]: lezione08.crea_indice(lezione08.agenda, 'cognome')

Out[59]:

{'Paolino': [0],

'Paperone': [1],

"de' Paperoni": [2],

'Pitagorico': [3],

'Gambadilegno': [4, 5],

'Mouse': [6, 7],

"de' Pippis": [8]}


In [60]: I = _


In [61]: I['Pitagorico']

Out[61]: [3]


In [62]: [ lezione08.agenda[pos] for pos in I['Pitagorico'] ]

Out[62]:

[{'nome': 'Archimede',

'cognome': 'Pitagorico',

'telefono': '555-11235',

'indirizzo': 'colle degli Inventori 1',

'città': 'Paperopoli'}]


In [63]: [ lezione08.agenda[pos] for pos in I['Mouse'] ]

Out[63]:

[{'nome': 'Topolino',

'cognome': 'Mouse',

'telefono': '555-12345',

'indirizzo': 'via degli Investigatori 1',

'città': 'Topolinia'},

{'nome': 'Minnie',

'cognome': 'Mouse',

'telefono': '555-54321',

'indirizzo': 'via di M.me Curie 1',

'città': 'Topolinia'}]


In [64]: