Python 3.8.6 | packaged by conda-forge | (default, Oct 7 2020, 19:08:05)

Type "copyright", "credits" or "license" for more information.


IPython 7.18.1 -- An enhanced Interactive Python.


In [1]: def stampa_lista(L, indice):

   ...: if indice == len(L):

   ...: return

   ...: else:

   ...: print(L[indice])

   ...: stampa_lista(L, indice+1)

   ...:


In [2]: L = [ 1, 4, 56, 78, 23]


In [3]: stampa_lista(L, 0)

1

4

56

78

23


In [4]: def stampa_lista(L, indice):

   ...: if indice == len(L):

   ...: return

   ...: else:

   ...: stampa_lista(L, indice+1)

   ...: print(L[indice])

   ...:


In [5]: stampa_lista(L, 0)

23

78

56

4

1


In [6]: def stampa_lista(L, indice):

   ...: if indice == len(L):

   ...: return

   ...: else:

   ...: stampa_lista(L, indice+1)

   ...: print(L[indice])

   ...:


In [7]: len(L)

Out[7]: 5


In [8]: L.insert(78, 45)


In [9]: L

Out[9]: [1, 4, 56, 78, 23, 45]


In [10]: L[::-1]

Out[10]: [45, 23, 78, 56, 4, 1]


In [11]: L[3::-1]

Out[11]: [78, 56, 4, 1]


In [12]: L

Out[12]: [1, 4, 56, 78, 23, 45]


In [13]: L[4:4] = [ 555 ]


In [14]: L

Out[14]: [1, 4, 56, 78, 555, 23, 45]


In [15]: L[4:4] = [ 6, 7, 8 ]


In [16]: L

Out[16]: [1, 4, 56, 78, 6, 7, 8, 555, 23, 45]


In [17]: del L[3]


In [18]: L

Out[18]: [1, 4, 56, 6, 7, 8, 555, 23, 45]


In [19]: L.pop(6)

Out[19]: 555


In [20]: L

Out[20]: [1, 4, 56, 6, 7, 8, 23, 45]


In [21]: L[2:4] = []


In [22]: L

Out[22]: [1, 4, 7, 8, 23, 45]


In [23]: L = [ 5, 78, 2, -23, 900]


In [24]: sorted(L)

Out[24]: [-23, 2, 5, 78, 900]


In [25]: eterogenea = [ 1, -4.67, 'pippo' ]


In [26]: sorted(eterogenea)

Traceback (most recent call last):


File "<ipython-input-26-a7e83ddce582>", line 1, in <module>

sorted(eterogenea)


TypeError: '<' not supported between instances of 'str' and 'float'



In [27]: numeri = [ 4.6, -23, 89, -567.7 ]


In [28]: sorted(numeri)

Out[28]: [-567.7, -23, 4.6, 89]


In [29]: lista_testi = [ 'uno', 'due', 'tre' ]


In [30]: sorted(lista_testi)

Out[30]: ['due', 'tre', 'uno']


In [31]: sorted('Pippo è andato al mare')

Out[31]:

[' ',

' ',

' ',

' ',

'P',

'a',

'a',

'a',

'a',

'd',

'e',

'i',

'l',

'm',

'n',

'o',

'o',

'p',

'p',

'r',

't',

'è']


In [32]: %pprint

Pretty printing has been turned OFF


In [33]: sorted('Pippo è andato al mare')

Out[33]: [' ', ' ', ' ', ' ', 'P', 'a', 'a', 'a', 'a', 'd', 'e', 'i', 'l', 'm', 'n', 'o', 'o', 'p', 'p', 'r', 't', 'è']


In [34]: list('testo')

Out[34]: ['t', 'e', 's', 't', 'o']


In [35]: t = 'Pippo è andato al mare'


In [36]: t.split()

Out[36]: ['Pippo', 'è', 'andato', 'al', 'mare']


In [37]: t = 'Pippo è andato\n al mare'


In [38]: t.split()

Out[38]: ['Pippo', 'è', 'andato', 'al', 'mare']


In [39]: t.split(' ')

Out[39]: ['Pippo', 'è', 'andato\n', 'al', 'mare']


In [40]: t.split('\n')

Out[40]: ['Pippo è andato', ' al mare']


In [41]: sorted(L, reverse=True)

Out[41]: [900, 78, 5, 2, -23]


In [42]: parole = t.split()


In [43]: parole

Out[43]: ['Pippo', 'è', 'andato', 'al', 'mare']


In [44]: sorted(parole)

Out[44]: ['Pippo', 'al', 'andato', 'mare', 'è']


In [45]: sorted(parole, key=len)

Out[45]: ['è', 'al', 'mare', 'Pippo', 'andato']


In [46]: T = ( 1, 2, 3, 4)


In [47]: T

Out[47]: (1, 2, 3, 4)


In [48]: T[2]

Out[48]: 3


In [49]: T[2] = 44

Traceback (most recent call last):


File "<ipython-input-49-f5ccaae98835>", line 1, in <module>

T[2] = 44


TypeError: 'tuple' object does not support item assignment



In [50]: T = 1, 2, 3, 4


In [51]: T

Out[51]: (1, 2, 3, 4)


In [52]: T = 1


In [53]: T

Out[53]: 1


In [54]: T = 1,


In [55]: T

Out[55]: (1,)


In [56]: T = (1)


In [57]: T

Out[57]: 1


In [58]: (3 + 4)

Out[58]: 7


In [59]: (3 + 4,)

Out[59]: (7,)


In [60]: "paperino" < "minnie"

Out[60]: False


In [61]: "paperino" < "pluto"

Out[61]: True


In [62]: [ 2, 4, 6 ] < [ -3, 5, 9 ]

Out[62]: False


In [63]: %time sorted(L)

CPU times: user 12 µs, sys: 0 ns, total: 12 µs

Wall time: 18.8 µs

Out[63]: [-23, 2, 5, 78, 900]


In [64]: %timeit sorted(L)

739 ns ± 75.1 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)


In [65]: somma = 0


In [66]: for elemento in L:

    ...: somma += elemento

    ...:


In [67]: somma

Out[67]: 962


In [68]: somma = 0


In [69]: indice = 0


In [70]: while indice < len(L):

    ...: somma += L[indice]

    ...: indice += 1

    ...:


In [71]: somma

Out[71]: 962


In [72]: L.count(42)

Out[72]: 0


In [73]: L

Out[73]: [5, 78, 2, -23, 900]


In [74]: L.count(2)

Out[74]: 1


In [75]: T = ( [1, 2, 3] , [4, 5, 6])


In [76]: T

Out[76]: ([1, 2, 3], [4, 5, 6])


In [77]: del T[0]

Traceback (most recent call last):


File "<ipython-input-77-be65988955f1>", line 1, in <module>

del T[0]


TypeError: 'tuple' object doesn't support item deletion



In [78]: T[0]

Out[78]: [1, 2, 3]


In [79]: T[0][1] = 34


In [80]: T

Out[80]: ([1, 34, 3], [4, 5, 6])


In [81]: 'a' in "Paperino ama Minnie"

Out[81]: True


In [82]: 'ape' in "Paperino ama Minnie"

Out[82]: True


In [83]: testo = "Paperino ama Minnie"


In [84]: testo.find('ape')

Out[84]: 1


In [85]: testo.find('Ape')

Out[85]: -1


In [86]: testo.rfind('ape')

Out[86]: 1


In [87]: L

Out[87]: [5, 78, 2, -23, 900]


In [88]: id(L)

Out[88]: 140426910743232


In [89]: M = L + [ 45, 46]


In [90]: id(M)

Out[90]: 140426910647360


In [91]: M is L

Out[91]: False


In [92]: M = L


In [93]: M

Out[93]: [5, 78, 2, -23, 900]


In [94]: M += [ 45, 46]


In [95]: id(M)

Out[95]: 140426910743232


In [96]: M

Out[96]: [5, 78, 2, -23, 900, 45, 46]


In [97]: L

Out[97]: [5, 78, 2, -23, 900, 45, 46]


In [98]: M is L

Out[98]: True


In [99]: parole

Out[99]: ['Pippo', 'è', 'andato', 'al', 'mare']


In [100]: parole = [ 'uno', 'due', 'tre', 'quattro', 'cinque', 'sei', 'sette', 'otto', 'nove', 'dieci' ]


In [101]: sorted(parole)

Out[101]: ['cinque', 'dieci', 'due', 'nove', 'otto', 'quattro', 'sei', 'sette', 'tre', 'uno']


In [102]: sorted(parole, key=len)

Out[102]: ['uno', 'due', 'tre', 'sei', 'otto', 'nove', 'sette', 'dieci', 'cinque', 'quattro']


In [103]: def lunghezza_e_ordine_alfabetico(elemento) :

     ...: return len(elemento), elemento

     ...:


In [104]: sorted(parole, key=lunghezza_e_ordine_alfabetico)

Out[104]: ['due', 'sei', 'tre', 'uno', 'nove', 'otto', 'dieci', 'sette', 'cinque', 'quattro']


In [105]: sorted(parole, key=lunghezza_e_ordine_alfabetico, reverse=True)

Out[105]: ['quattro', 'cinque', 'sette', 'dieci', 'otto', 'nove', 'uno', 'tre', 'sei', 'due']


In [106]: def lunghezza_e_ordine_alfabetico2(elemento) :

     ...: return -len(elemento), elemento

     ...:


In [107]: def lunghezza_e_ordine_alfabetico2(elemento) :

     ...: return -len(elemento), elemento

     ...:


In [108]: sorted(parole, key=lunghezza_e_ordine_alfabetico2, reverse=True)

Out[108]: ['uno', 'tre', 'sei', 'due', 'otto', 'nove', 'sette', 'dieci', 'cinque', 'quattro']


In [109]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2020-21/Lezioni/lezione05-20-10-20/k-massimi.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2020-21/Lezioni/lezione05-20-10-20')

File "/home/andrea/Documents/Uni/Didattica/Prog1/2020-21/Lezioni/lezione05-20-10-20/k-massimi.py", line 40

def k-massimi(k, L):

^

SyntaxError: invalid syntax



In [110]: import k-massimi

File "<ipython-input-110-5311d2c510fb>", line 1

import k-massimi

^

SyntaxError: invalid syntax



In [111]: import k_massimi


In [112]: k_massimi.k_massimi(-3, [1, 2, 3])

Traceback (most recent call last):


File "<ipython-input-112-8baab1b0daca>", line 1, in <module>

k_massimi.k_massimi(-3, [1, 2, 3])


File "/home/andrea/Documents/Uni/Didattica/Prog1/2020-21/Lezioni/lezione05-20-10-20/k_massimi.py", line 42, in k_massimi

assert 0 <= k <= len(L), "K non è valido"


AssertionError: K non è valido



In [113]: k_massimi.k_massimi(1, [1, 2, 3])

Out[113]: [42]


In [114]: k_massimi.k_massimi(3, [1, 2, 3])

Out[114]: [42, 42, 42]


In [115]: import importlib


In [116]: importlib.reload(k_massimi)

Out[116]: <module 'k_massimi' from '/home/andrea/Documents/Uni/Didattica/Prog1/2020-21/Lezioni/lezione05-20-10-20/k_massimi.py'>


In [117]: L = list(range(20))


In [118]: L

Out[118]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]


In [119]: k_massimi.k_massimi(3, L)

Out[119]: [19, 18, 17]


In [120]: L

Out[120]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]


In [121]: importlib.reload(k_massimi)

Out[121]: <module 'k_massimi' from '/home/andrea/Documents/Uni/Didattica/Prog1/2020-21/Lezioni/lezione05-20-10-20/k_massimi.py'>


In [122]: k_massimi.k_massimi_ND(3, L)

Out[122]: [16, 15, 14]


In [123]: L

Out[123]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]


In [124]: importlib.reload(k_massimi)

Out[124]: <module 'k_massimi' from '/home/andrea/Documents/Uni/Didattica/Prog1/2020-21/Lezioni/lezione05-20-10-20/k_massimi.py'>


In [125]: import random


In [126]: L = random.choices(range(1000000),k=1024)


In [127]: L

Out[127]: [72266, 826072, 661327, 979069, 11983, 859303, 783363, 649448, 175240, 899368, 823522, 902182, 460454, 704884, 427475, 716696, 281251, 266013, 774565, 155595, 118665, 708480, 804309, 918604, 468311, 991978, 472816, 767112, 300284, 785382, 84836, 972384, 274576, 104364, 555075, 477668, 112481, 906463, 779230, 568127, 306756, 805949, 675500, 911646, 813735, 362165, 489455, 105728, 365483, 615434, 836723, 282196, 197099, 142709, 381898, 529351, 496696, 370646, 403679, 573041, 319561, 652306, 868742, 87106, 424985, 786597, 353365, 956484, 31374, 471826, 323380, 437822, 263388, 642284, 229837, 240330, 230533, 326566, 655719, 200363, 903908, 359527, 855847, 578134, 759754, 827259, 93979, 772490, 369617, 971344, 346074, 96770, 590649, 351339, 184504, 114395, 178201, 209487, 620999, 432195, 466098, 513228, 338542, 348924, 818527, 424370, 52124, 179945, 335539, 504989, 454314, 603666, 26601, 539828, 24484, 847848, 582594, 188941, 170953, 812376, 172731, 540456, 478314, 908311, 262251, 186178, 336709, 709354, 388550, 208896, 829103, 897824, 920184, 855537, 811602, 543653, 126600, 483517, 74390, 610773, 315188, 926313, 813402, 754002, 425488, 894284, 381516, 226570, 484546, 531551, 602111, 658884, 279675, 309768, 749369, 614391, 465462, 795856, 981755, 119483, 634732, 253802, 241529, 366199, 20291, 870741, 824756, 12440, 740421, 856953, 475297, 324907, 875296, 517546, 452615, 468657, 317060, 725799, 411293, 339028, 583690, 365574, 612700, 9674, 884272, 408119, 41766, 126318, 437076, 223440, 841786, 367828, 508657, 1613, 661588, 625599, 19630, 341681, 391932, 415472, 248740, 206370, 299092, 528783, 714689, 183050, 719058, 591816, 75713, 366944, 682042, 364854, 551551, 611546, 708810, 493811, 900122, 336469, 389459, 887270, 313682, 53900, 962745, 206549, 97683, 439465, 764858, 692948, 907055, 211884, 768074, 550546, 198108, 413742, 215151, 191736, 284587, 53279, 747182, 538279, 644283, 223358, 805787, 358615, 450277, 408254, 686659, 423268, 372205, 170559, 721740, 230665, 26386, 289488, 200525, 985064, 715516, 818038, 753244, 269146, 251873, 94248, 806857, 105306, 277971, 847452, 826969, 908712, 266012, 910242, 51870, 522013, 998500, 771797, 764745, 731557, 973469, 967873, 701915, 322047, 22145, 286417, 243521, 997802, 716834, 463964, 11155, 694885, 741283, 881947, 60256, 811439, 893427, 260957, 812598, 713665, 963042, 164153, 975471, 136279, 889685, 278570, 387178, 582167, 508313, 572951, 224640, 415988, 329137, 957626, 840761, 775005, 769173, 734338, 403810, 124185, 526338, 666435, 950120, 579362, 413769, 846691, 597950, 868741, 151377, 676295, 26272, 980121, 897832, 861739, 223737, 363927, 663398, 890919, 602440, 498786, 961820, 938293, 110452, 925763, 813396, 907545, 585545, 573616, 131625, 564749, 770578, 599086, 304704, 399023, 473141, 200562, 570783, 872067, 244283, 242198, 69307, 784296, 675545, 91114, 288816, 278012, 729412, 502695, 35218, 285433, 886834, 162017, 600933, 780463, 314550, 196769, 503847, 502343, 765842, 307589, 335980, 320473, 807319, 705268, 932910, 146878, 836098, 327526, 607287, 605817, 139513, 275193, 637077, 860693, 647974, 479766, 118951, 478414, 915292, 240036, 792693, 748507, 363920, 90253, 544787, 870615, 973143, 868200, 755620, 719056, 229339, 206903, 908869, 601386, 914510, 12175, 92202, 639804, 831630, 324444, 259317, 226711, 578833, 909732, 942181, 660678, 116822, 380276, 787162, 833081, 675181, 867894, 237162, 940738, 557179, 770144, 681149, 861583, 308139, 129091, 825583, 684350, 576497, 690096, 332700, 767804, 312334, 883048, 83236, 619676, 224471, 89684, 568021, 185762, 541464, 132873, 258427, 416543, 666571, 612064, 531380, 340047, 601869, 364046, 332262, 73448, 520159, 937579, 788725, 992709, 514789, 165888, 827734, 599939, 990564, 951193, 775230, 944512, 231168, 438166, 567416, 591330, 675889, 230944, 52043, 594083, 207115, 268090, 908052, 359662, 315999, 687943, 892045, 230957, 19771, 773666, 661634, 661857, 549265, 959880, 875549, 266933, 96082, 273372, 750974, 521580, 869886, 371091, 516252, 685871, 32999, 9272, 129284, 599277, 231653, 844058, 968210, 265669, 540731, 437650, 304869, 399899, 495271, 854503, 80289, 988242, 659511, 24527, 14791, 3784, 609530, 327465, 759737, 423754, 417719, 748898, 497612, 98922, 460548, 395911, 721828, 173814, 200730, 97232, 120177, 848003, 846886, 334587, 557198, 661394, 427974, 373891, 626024, 167944, 408518, 657003, 551226, 147714, 391518, 201566, 338485, 822935, 556529, 108234, 583390, 189701, 323748, 800971, 550091, 407261, 912005, 699060, 592721, 64198, 697190, 552645, 657344, 799886, 5409, 116118, 821404, 261290, 572610, 182133, 555944, 426196, 824610, 40889, 9053, 890322, 402270, 771838, 279165, 256823, 998040, 908508, 733729, 712623, 175794, 518182, 126221, 391125, 749825, 386994, 575776, 765873, 123050, 787131, 384464, 684063, 361753, 676435, 361353, 143150, 554999, 462025, 274570, 338245, 923009, 978661, 901685, 82213, 182723, 394687, 377107, 51877, 750674, 322998, 629131, 74439, 227823, 52667, 116772, 238742, 221604, 631435, 460757, 508051, 871542, 800154, 171128, 127727, 779996, 357559, 124306, 21593, 263000, 558881, 859363, 273553, 509484, 5473, 13238, 812651, 259706, 172895, 46238, 725011, 236712, 853434, 272243, 346221, 593154, 354260, 489866, 638511, 445357, 178793, 271171, 770025, 829450, 606873, 363629, 127884, 411985, 902985, 661213, 680503, 187920, 135718, 947373, 805669, 882439, 922529, 71543, 497828, 613176, 776164, 640062, 540942, 963558, 68826, 535514, 497941, 35228, 493894, 920296, 660571, 264628, 380497, 522396, 203530, 981051, 38383, 253110, 502492, 53366, 28177, 255867, 131313, 324758, 447929, 108780, 948244, 120036, 396094, 652255, 473584, 710410, 439225, 237046, 513084, 235607, 129424, 86124, 8819, 307487, 612419, 722695, 907506, 69795, 303919, 590288, 509028, 396865, 43722, 526939, 171539, 76657, 983454, 647459, 842658, 311416, 912313, 517056, 677516, 695510, 108751, 375404, 963053, 850481, 818471, 642847, 653984, 728123, 992247, 467831, 901709, 253557, 211517, 94689, 293032, 851831, 3982, 853719, 603854, 76524, 495845, 213196, 311391, 674332, 846980, 186583, 725922, 74011, 837047, 924630, 320098, 442687, 209962, 361276, 55306, 326213, 113962, 988310, 514879, 915274, 677840, 361597, 597764, 334479, 934661, 304232, 726899, 123688, 416667, 364873, 714640, 681201, 627960, 870972, 572322, 398425, 541046, 229452, 342244, 83084, 173180, 469999, 394524, 608526, 861889, 434217, 292621, 418962, 217386, 870784, 445205, 717596, 538610, 89752, 898859, 60067, 579186, 322298, 892628, 867707, 960985, 31821, 631405, 754286, 393018, 443468, 476015, 403095, 597551, 586074, 404220, 829069, 254232, 211513, 187773, 569675, 672107, 728236, 141800, 618634, 821547, 918446, 163527, 269883, 623532, 773189, 153501, 827807, 576030, 312231, 685540, 693, 867667, 98146, 119729, 416065, 753241, 629105, 924406, 475890, 327777, 459484, 367026, 472397, 756155, 677896, 244960, 92649, 286936, 273386, 61202, 963836, 203199, 254981, 215055, 329803, 25190, 849493, 929022, 360183, 342661, 628200, 648386, 25121, 659900, 6258, 731214, 479486, 369420, 333495, 406226, 623015, 479632, 445230, 767602, 909821, 686982, 735592, 762906, 815731, 365617, 639977, 675500, 747020, 132400, 687145, 855322, 996042, 149601, 13496, 559876, 250808, 728703, 889186, 240259, 370565, 76917, 645348, 488626, 846384, 351362, 231606, 240117, 557566, 808045, 368978, 981393, 743504, 845130, 653950, 308960, 573801, 693912, 337734, 815692, 485314, 421995, 19833, 384999, 337661, 52164, 724247, 311993, 457260, 476150, 911746, 413377, 956761, 796277, 960013, 494087, 929273, 701197, 543207, 514514, 55266, 758088, 353882, 458960, 812726, 78524, 360162, 64043, 248616, 527089, 34549, 248801, 435403, 32331, 111867, 910167, 756688, 262674, 943880, 704655, 129104, 727422, 115813, 833776, 338874, 946984, 229168, 406084, 81235, 264963, 757426, 556461, 188716, 163314, 473480, 535675, 541618, 911630, 470028, 267363, 992555, 654349, 3808, 334471, 203536, 787113, 319834, 37017, 975188, 59770, 532596, 419205, 578956, 955392, 366297, 648698, 320467, 704383, 696556, 360351, 408949, 857552, 446828, 585324, 829791, 765374]


In [128]: k_massimi.k_massimi_ordinati(10, L)

Out[128]: [998500, 998040, 997802, 996042, 992709, 992555, 992247, 991978, 990564, 988310]


In [129]: %timeit k_massimi.k_massimi_ordinati(10, L)

288 µs ± 14.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)


In [130]: %timeit k_massimi.k_massimi_ND(10, L)

850 µs ± 121 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)


In [131]: %timeit k_massimi.k_massimi_ND(100, L)

8.54 ms ± 817 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)


In [132]: %timeit k_massimi.k_massimi_ordinati(100, L)

254 µs ± 9.37 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)


In [133]: %timeit k_massimi.k_massimi_ordinati(2, L)

276 µs ± 40.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)


In [134]: %timeit k_massimi.k_massimi_ND(2, L)

185 µs ± 19.5 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)


In [135]: