Aller au contenu

Listes en compréhension et sous-listes⚓︎

Listes en compréhension et boucles⚓︎

Liste en compréhension

Les listes en compréhension sont des listes créées en une ligne à l'aide de la syntaxe suivante :

nouvelle_liste = [EXPR for VAR in ITERABLE]

EXPR est une expression contenant, ou pas, la variable de boucle VAR et ITERABLE est un objet Python itérable tel qu'une autre liste ou un appel à la fonction range.

La liste obtenue est équivalente à celle obtenue en faisant :

nouvelle_liste = []
for VAR in ITERABLE:
    nouvelle_liste.append(EXPR)
Un exemple de construction de liste en compréhension

Les deux fonctions suivantes renvoient le même résultat à chaque fois. On dit qu’elles sont équivalentes.

def affine1(valeurs):
    nouvelle_liste = []
    for v in valeurs:
        nouvelle_liste.append(3*v - 5)
    return nouvelle_liste

def affine2(valeurs):
    return [3*v - 5 for v in valeurs]
>>> affine1([5, 2, 8, 10])
[10, 1, 19, 25]
>>> affine2([5, 2, 8, 10])
[10, 1, 19, 25]
Vous pouvez tester les fonctions ci-dessous

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : /∞

⚠ Ce n'est pas parce qu'on a vérifié que les deux fonctions donnaient le même résultat pour quelques valeurs qu'on a la preuve qu'elles sont équivalentes.

Exercice 13 : Liste en compréhension

Compléter le code de la fonction fonction2 qui prend en paramètre une liste d'entiers valeurs et qui renvoie le même résultat que fonction1(valeurs). Les fonctions doivent être équivalentes.

Il n'y a pas d'exemples, ni de tests de publics. À vous de trouver comment tester votre fonction.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013it( 1 a2f=[*e58)n7uws+gh/4cPmlpo6_y:3b]vdSk"r.010H0f0409030w0n080t0w090n0n0c0K04030x0K0006010n0l0v0v090L0B000I0y0w0l0%0y0j010r0,0.0:0=0*0H030G080/0L0J0H0y0m0j0#070K080n040B0w0f0#1a0p030j0C070M0k0f0v08071z1j0)0N170V0X0Z0#0q030p0q0w1N0q040(010Q0E1o1I0Y0!0K1M1O1Q1O041W1o1U040L001V0q0V0^0n0x091g0K0a1j0W1!0#0b0S0f0j090v0f1U1@1_1Z1K0K221o25270(02080u0L0y0x0y0n030{0j080O1=0L0L0f0t2t0~2a0j1/0r040q2G1-1/2L1V0H2c1#1Q0j242q1U16181~2d2S2U2X1U0x2z1/2E2G2*0+1^2u2Z1#0j0y0L0/0w0(072D2.1F2E2Q0#2=2@092_000a2|1_2~2.310K332^0(0D392F0*302:322?3g000s3j3b2b3n3e3p350(0g3t3l3c3w3f3z000z3C2-3v1J2;3y360k3K3m3N3o34360h3t0~2'0f2G2X2K0H2M2P3w0t0y0O2W171/3#2)2}3Z3,0O3?3M200K0J0(0O0b3t083L2/3U3e0b0(0b0|2B030|2{103@3T3}0'00053Z4k2d0j0(0G350f0l0L0n4p3E484m0i0C3C084H454q2;0(2=0l0G0f0w1o0A1Q1l0f44463d0y0(0c4X4K0#4m0d0F4G4I4Y3w40004c0L4%4B3}4s000G4?3|2d1e0(1t4|474^4t4v4x4z4i3a4-4C0(4F5a3k4I5i4J4@4r4M0y4O4Q4S4U044W5g3{544~0(0M4A4}4L00090x0x240H5B5x1#4m4o5v5c554`5K4Z0(0e5T3F4t535U000o5!3w0v030(385P4&0K4!005W5,5l5D4{5=5C4'0(0i4+4H5Q2d4/2z044x0}5v5k5`3e5n5p4R0f4T034V3C3D6a4/425&480j4a4:4d2t5+2,5-5N5X6p561o586z4l5|5f2*065i611#630P666o6F000d6E5m5S5_5L0#5/5;6w5?325Z686L6Z0(5%6(5-5(5*6U1#6!6;6&6W2*696Y3~4b2?6Q6V5^6`6)5.0m5167745-4_4u6C4y6@0K4m4*5v0*0r3_3$3!2(0~3&0~043(7t1.7t091X7o0r3&7l7D7r0P0R0T00

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013di*lawt:.mg 8s]15_72e36h+)PkrpSb"fvy/[nu=o c(401030n090704060g0J0K06070g0g0H0z09040w0z000e010g0G0c0c070v0C000x0I060G0%0I0F010D0,0.0:0=0*03040B0J0/0v0u030I080F0#0i0z0J0g090C060n0#1a0d040F0a0i0b0l0n0c0J0i1z1j0)0N170V0X0Z0#0q040d0q061N0q090(010Q0y1o1I0Y0!0z1M1O1Q1O091W1o1U090v001V0q0V0^0g0w071g0z0m1j0W1!0#0A0S0n0F070c0n1U1@1_1Z1K0z221o25270(020J0t0v0I0w0I0g040{0F0J0O1=0v0v0n0K2t0~2a0F1/0D090q2G1-1/2L1V032c1#1Q0F242q1U16181~2d2S2U2X1U0w2z1/2E2G2*0+1^2u2Z1#0F0I0v0/060(0i2D2.1F2E2Q0#2=2@072_000m2|1_2~2.310z332^0(0o392F0*302:322?3g000M3j3b2b3n3e3p350(0j3t3l3c3w3f3z000p3C2-3v1J2;3y360l3K3m3N3o34360f3t0~2'0n2G2X2K032M2P3w0K0I0O2W171/3#2)2}3Z3,0O3?3M200z0u0(0O0A3t0J3L2/3U3e0A0(0A0|2B040|2{103@3T3}0'000L3Z4k2d0F0(0B350n0G0v0g4p3E484m0s0a3C0J4H454q2;0(2=0G0B0n061o0k1Q1l0n44463d0I0(0H4X4K0#4m0E0h4G4I4Y3w40004c0v4%4B3}4s000B4?3|2d1e0(1t4|474^4t4v4x4z4i3a4-4C0(4F5a3k4I5i4J4@4r4M0I4O4Q4S4U094W5g3{544~0(0b4A4}4L00070w0w24035B5x1#4m4o5v5c554`5K4Z0(055T3F4t535U000r5!3w0c040(385P4&0z4!005W5,5l5D4{5=5C4'0(0s4+4H5Q2d4/2z094x0}5v5k5`3e5n5p4R0n4T044V3C3D6a4/425&480F4a4:4d2t5+2,5-5N5X6p561o586z4l5|5f2*0e5i611#630P666o6F000E6E5m5S5_5L0#5/5;6w5?325Z686L6Z0(5%6(5-5(5*6U1#6!6;6&6W2*696Y3~4b2?6Q6V5^6`6)5.085167745-4_4u6C4y6@0z4m4*5v0*0D3_3$3!2(0~3&0~093(7t1.7t071X7o0D3&7l7D7r0P0R0T00
Filtrage lors de la compréhension

Il aussi possible de rajouter un filtrage sur les valeurs produites :

nouvelle_liste = [EXPR for VAR in ITERABLE if CONDITION]

CONDITION est une expression booléenne, contenant généralement VAR.

La liste obtenue est équivalente à celle obtenue en faisant :

nouvelle_liste = []
for VAR in ITERABLE:
    if CONDITION:
        nouvelle_liste.append(EXPR)
Un exemple de filtrage lors de la compréhension

Les deux fonctions suivantes renvoient le même résultat à chaque fois. On dit qu’elles sont équivalentes.

def filtrer1(a, liste):
    nouvelle_liste = []
    for v in liste:
        if v > a:
            nouvelle_liste.append(v)
    return nouvelle_liste

def filtrer2(a, liste):
    return [v for v in liste if v > a]
Vous pouvez tester les fonctions ci-dessous

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : /∞

⚠ Ce n'est pas parce qu'on a vérifié que les deux fonctions donnaient le même résultat pour quelques valeurs qu'on a la preuve qu'elles sont équivalentes.

Exercice 14 : Filtrage d'une liste

Compléter le code de la fonction triple_dans_intervalle1 qui prend 3 paramètres et qui renvoie le même résultat que triple_dans_intervalle2 avec les mêmes paramètres. Les fonctions doivent être équivalentes.

Il n'y a pas d'exemples, ni de tests de publics. À vous de trouver comment tester votre fonction.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013])83*Psk6._ypr/he&c9754=t mbua,2o f;vSwd1g(l":i[n010G0j0r0w0N0K090A0l0K0w09090q0L0r0N0f0L000s01090v0t0t0w0g0e000E0z0K0v0(0z0P010h0/0;0?0^0-0G0N0D0A0=0g0a0G0z0F0P0&0H0L0A090r0e0K0j0&1d0I0N0P0M0H0c0n0j0t0A0H1C1m0,0Q1a0Y0!0$0&0i0N0I0i0K1Q0i0r0+010T0u1r1L0#0%0L1P1R1T1R0r1Z1r1X0r0g001Y0i0Y0{090f0w1j0L0y1m0Z1%0&0B0V0j0P0w0t0j1X1`1|1$1N0L251r282a0+020A080g0z0f0z090N0~0P0A0R1^0g0g0j0l2w122d0P1=0h0r0i2J1:1=2O1Y0G2f1&1T0P272t1X191b222g2V2X2!1X0f2C1=2H2J2-0.1{2x2$1&0P0z0g0=0K0+0H2G2;1I2H2T0&2^2`0w2|000y301|322;340L362{0+063c2I0-332?352_3j000p3m3e2e3q3h3s380+0o3w3o3f3z3i3C000b3F2:3y1M2@3B390n3N3p3Q3r3739053V3H3X3A3Z0+0m3w122*0j2J2!2N0G2P2S3z0l0z0R2Z1a1=3-2,313+3_0R413P230L0a0+0R0B3w0A3O2=3&0P0B0+1:0)1r0d0G1|090d1w0r0j0g0D381r3b13423W480*000J3+4E2g0P0+0w4J3%4F0+0x4e4g3g4M000u4P472g4G4T4C3d4f4K2@0+1T1o0j4!4h4R00040M3F0A4`4)4Q2g4a002C0r0v0g114'2I4|4#1&4G0O4:3g0t0N3k5e3z0z0+075j4i0+0D4U4*0&500B2_5s4}4+005r5700594;2g1h0+1w5y5a354,0N4.5L5G1&500N4d5D5F4W4N5R3g5l000k0K0r0C0q5#3I5q5,3&5%5'5)5+5X4V5-4Y5o4=033F3G5M494b0j5W2-5Y3I4k004m0f4o4q0P4s4u4w4y0K1r2~5D5_3&4G4I6o5t3h5!6t5z0&4%5/484X4Z6x626A5^6u4X6k0j54095|4$0+4@4_4{6p6C0+2^0v0D0j6l0j0d4-4v6B5H0+5@676V6Q000O5~5D0s4{683&5v5x6I6y6v5B6)1&5I005K6}626K386M0g6O6F5S6z0+4^6?6^6^6.5T5J66316_6W004O777f0L5;5(5*725N717v5$0+5=7A7E5`6E2/6u4G7i2-6@7k7S7m7C6Y6!6$6&5P6(7e7F000c6P5A0w0f0f270G7(7g4H7/0L5g5i7$5k5m7=6K7=4G046T4`7U63510S54566-6J6X0z6Z6#4o6'4/6?12443.3,2+123:120r3=8r1;8r0w1!8m0h3:0-8A3}8C0R0T0V0900

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013(f,2sg= :_9ik1w"]5ld[v74rh)b3u/n6teo.mpc;*8&y SPa010m0B0A0P0e0l070M0G0l0P0707090i0A0e0F0i000a01070w0E0E0P0r0L000N0C0l0w0(0C0y010x0/0;0?0^0-0m0e0o0M0=0r0f0m0C0h0y0&0g0i0M070A0L0l0B0&1d080e0y0b0g0D0p0B0E0M0g1C1m0,0Q1a0Y0!0$0&0s0e080s0l1Q0s0A0+010T0u1r1L0#0%0i1P1R1T1R0A1Z1r1X0A0r001Y0s0Y0{070F0P1j0i061m0Z1%0&040V0B0y0P0E0B1X1`1|1$1N0i251r282a0+020M0O0r0C0F0C070e0~0y0M0R1^0r0r0B0G2w122d0y1=0x0A0s2J1:1=2O1Y0m2f1&1T0y272t1X191b222g2V2X2!1X0F2C1=2H2J2-0.1{2x2$1&0y0C0r0=0l0+0g2G2;1I2H2T0&2^2`0P2|0006301|322;340i362{0+0v3c2I0-332?352_3j000q3m3e2e3q3h3s380+0k3w3o3f3z3i3C000z3F2:3y1M2@3B390p3N3p3Q3r37390J3V3H3X3A3Z0+0d3w122*0B2J2!2N0m2P2S3z0G0C0R2Z1a1=3-2,313+3_0R413P230i0f0+0R043w0M3O2=3&0y040+1:0)1r0c0m1|070c1w0A0B0r0o381r3b13423W480*00033+4E2g0y0+0P4J3%4F0+054e4g3g4M000u4P472g4G4T4C3d4f4K2@0+1T1o0B4!4h4R000t0b3F0M4`4)4Q2g4a002C0A0w0r114'2I4|4#1&4G0n4:3g0E0e3k5e3z0C0+0I5j4i0+0o4U4*0&50042_5s4}4+005r5700594;2g1h0+1w5y5a354,0e4.5L5G1&500e4d5D5F4W4N5R3g5l000K0l0A0H095#3I5q5,3&5%5'5)5+5X4V5-4Y5o4=0j3F3G5M494b0B5W2-5Y3I4k004m0F4o4q0y4s4u4w4y0l1r2~5D5_3&4G4I6o5t3h5!6t5z0&4%5/484X4Z6x626A5^6u4X6k0B54075|4$0+4@4_4{6p6C0+2^0w0o0B6l0B0c4-4v6B5H0+5@676V6Q000n5~5D0a4{683&5v5x6I6y6v5B6)1&5I005K6}626K386M0r6O6F5S6z0+4^6?6^6^6.5T5J66316_6W004O777f0i5;5(5*725N717v5$0+5=7A7E5`6E2/6u4G7i2-6@7k7S7m7C6Y6!6$6&5P6(7e7F000D6P5A0P0F0F270m7(7g4H7/0i5g5i7$5k5m7=6K7=4G0t6T4`7U63510S54566-6J6X0C6Z6#4o6'4/6?12443.3,2+123:120A3=8r1;8r0P1!8m0x3:0-8A3}8C0R0T0V0700

Génération d'une sous-liste⚓︎

Remarque

Pour les exercices suivants, vous pouvez, ou non, utiliser des listes en compréhension.

Exercice 15 : que_les_negatifs(valeurs)

Compléter le code de la fonction que_les_negatifs qui prend en paramètres une liste d'entiers valeurs et qui renvoie une nouvelle liste composée uniquement des éléments de valeurs strictement négatifs. L'ordre des éléments gardé est le même dans les deux listes.

Exemples
>>> que_les_negatifs([-3, 5, -6, 9])
[-3, -6]
>>> que_les_negatifs([2])
[]
>>> que_les_negatifs([-1, -7, -5, -3])
[-1, -7, -5, -3]

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013.:1(=3uk0_6wp7oyP; ebra&5nsfqd/) tv]gSi2m"[c4lh010w0m0A0p0F0M0t0z0K0M0p0t0t070I0A0F0f0I000l010t090H0H0p0o0i000E0h0M090&0h0s010x0-0/0;0?0+0w0F0B0z0:0o0a0w0h0e0s0$050I0z0t0A0i0M0m0$1b0D0F0s0405030g0m0H0z051A1k0*0O180W0Y0!0$0N0F0D0N0M1O0N0A0)010R0n1p1J0Z0#0I1N1P1R1P0A1X1p1V0A0o001W0N0W0_0t0f0p1h0I0G1k0X1#0$0u0T0m0s0p0H0m1V1^1`1!1L0I231p26280)020z0j0o0h0f0h0t0F0|0s0z0P1?0o0o0m0K2u102b0s1:0x0A0N2H1.1:2M1W0w2d1$1R0s252r1V1719202e2T2V2Y1V0f2A1:2F2H2+0,1_2v2!1$0s0h0o0:0M0)052E2/1G2F2R0$2?2^0p2`000G2}1`302/320I342_0)083a2G0+312;332@3h000L3k3c2c3o3f3q360)0r3u3m3d3x3g3A000d3u102(0m2H2Y2L0w2N2Q3x0K0h0P2X181:3N2*2~3L3W0P3%3w1K1$0a0)0P0u3u0z2.3+213f0u0)0v090m0c1p0t0c2U0D0p0&0u0t3L3n3,0$0(00064b3F4d3f0)0B360m090o4a113&4c3_4f0y043D0z4B3?4v2e0s0)2?090B0m0M1p410F1m0m3=3@2:4k0h0)074S4E1$4f0J0C4A4C4T3e3.000u2@4Z4j3_4G000B4/3^2e1f0)1u4^4U4;4m4o4q4s2-4!4e0)4z4t3b0l4C5e4D4:2e4+0F3;5b2G5g4_2=4m4~3e4W000q0M0A0k5s3x0H0F0)0b4i5p58005a2+5d5f5N4)3G4H0h4J4L4N1R4Q5G504`0)035Y3e4=0p0f0f250w5%3x4f4h5m3*5Z5q4?5-4k4x4'4B5P4k4+2A0A4q0~5;5o5?335R5T4M405W0A4R5;0+0x3(3O3M2)103Q100A3S6q1/6q0p1Y6l0x3Q6i6A6o0Q0S0U00

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013hdkq(/."sf16a5v3]0cp&ne7)P uig4l=: wot2Sy;rb_m[01040p0E0f0v0y0b0B0l0y0f0b0b0z0a0E0v0m0a000t010b0u0M0M0f0J0H000G0D0y0u0&0D0o01080-0/0;0?0+040v0h0B0:0J05040D0C0o0$0d0a0B0b0E0H0y0p0$1b0w0v0o0A0d090q0p0M0B0d1A1k0*0O180W0Y0!0$030v0w030y1O030E0)010R0K1p1J0Z0#0a1N1P1R1P0E1X1p1V0E0J001W030W0_0b0m0f1h0a0F1k0X1#0$0c0T0p0o0f0M0p1V1^1`1!1L0a231p26280)020B0s0J0D0m0D0b0v0|0o0B0P1?0J0J0p0l2u102b0o1:080E032H1.1:2M1W042d1$1R0o252r1V1719202e2T2V2Y1V0m2A1:2F2H2+0,1_2v2!1$0o0D0J0:0y0)0d2E2/1G2F2R0$2?2^0f2`000F2}1`302/320a342_0)0i3a2G0+312;332@3h000x3k3c2c3o3f3q360)0g3u3m3d3x3g3A000e3u102(0p2H2Y2L042N2Q3x0l0D0P2X181:3N2*2~3L3W0P3%3w1K1$050)0P0c3u0B2.3+213f0c0)060u0p0L1p0b0L2U0w0f0&0c0b3L3n3,0$0(00074b3F4d3f0)0h360p0u0J4a113&4c3_4f0r0A3D0B4B3?4v2e0o0)2?0u0h0p0y1p410v1m0p3=3@2:4k0D0)0z4S4E1$4f0N0j4A4C4T3e3.000c2@4Z4j3_4G000h4/3^2e1f0)1u4^4U4;4m4o4q4s2-4!4e0)4z4t3b0t4C5e4D4:2e4+0v3;5b2G5g4_2=4m4~3e4W000n0y0E0I5s3x0M0v0)0k4i5p58005a2+5d5f5N4)3G4H0D4J4L4N1R4Q5G504`0)095Y3e4=0f0m0m25045%3x4f4h5m3*5Z5q4?5-4k4x4'4B5P4k4+2A0E4q0~5;5o5?335R5T4M405W0E4R5;0+083(3O3M2)103Q100E3S6q1/6q0f1Y6l083Q6i6A6o0Q0S0U00

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013"7r&cavb]/tu 0lsgn_[ )=kehqi(w;y:S21d.Pmpof010D0r0d080u0h0i0n070h080i0i0p030d0u0H03000f010i0e0G0G08050y000A0I0h0e0!0I0k010c0)0+0-0/0'0D0u090n0,050q0D0I0w0k0Y0C030n0i0d0y0h0r0Y170j0u0k0z0C0E040r0G0n0C1w1g0&0K140S0U0W0Y0s0u0j0s0h1K0s0d0%010N0a1l1F0V0X031J1L1N1L0d1T1l1R0d05001S0s0S0=0i0H081d030B1g0T1X0Y0J0P0r0k080G0r1R1;1?1W1H031~1l22240%020n0F050I0H0I0i0u0^0k0n0L1/05050r072q0{270k1,0c0d0s2D1*1,2I1S0D291Y1N0k212n1R13151{2a2P2R2U1R0H2w1,2B2D2'0(1=2r2W1Y0k0I050,0h0%0C2A2+1C2B2N0Y2/2;082?000B2_1?2D2$0r2D2U2H0D2J2M2-0Y070I0L2T141,392&2`362C013j0L3q283h030q0%0L0J3s000n2*3y1G2.0J0%0t0e0r0l1l0i0l2Q0j080!0J0i3F3I2,3K0Y0$000v3#2|3z0k0%09320r0e053!0|3r3,3&033(0o0z3F0f0n443H3{1|3A0%2w0d3?0`3_37462+2}3}0%0m3+4i3-3/3F4h3J483B000J2:4r3$4j3.00094z472a1b0%1q4F4o3|4C3:1l3?3^2'4s3%4u4J3E4f2C4U4B4q4Z3G4A3z0I0%060h0d0x4L4t2a0G0u0%0g4n4;1Y3(0b420{3v3a0{3p0{3c0{0d3e581+58081U530c3c0'5h3n5j0L0N0P0i00
Exercice 16 : que_croissant(valeurs)

Compléter le code de la fonction que_croissant qui prend en paramètre une liste non vide d'entiers valeurs et renvoie la plus grande sous-liste d'éléments strictement croissants et commençant par le premier élément de valeurs.

Exemples
>>> que_croissant([1, 2, 5, 3, 10, -1]) # 3 et -1 inférieur au précédent
[1, 2, 5, 10]
>>> que_croissant([11, 2, 5, 3, 10, -1]) # aucun n'est supérieur à 11
[11]
>>> que_croissant([11, 2, 125, 3, 15, 120])
[11, 125]

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.1280131["mgR7-Pw:/pcé4u])2bd#Ss=6a.iO_y(&q n;r e80v5ltoèkfh3j010o0I0O0u0w0N0r0H0g0N0u0r0r0s050O0w0f05000D010r0j06060u0G0z000q0P0N0j0.0P0E0H0B0u060f0F0H080I0{0G0C0j0I0r010e0^0`0|0~0?0o0w0L0H1h0R0o0P0c0E0,03050H0r0O0z0N0I0,1h070w0E0d030v091g0H031g1G0=0W1v0&0(0*0,0T0w070T0N1+0T0O0;010Z0n1L1&0)0+051*1,1.1,0O1@1L1=0O0G001?0T0&120r0f0u1D050m1G0'1{0,0S0#0I0E1a0I1=2e2g1`1(052o1L2r062t00020H0b0G0P0f0P0r0w15170X2c0G0G0I0g2P1n2v0E290e0O0T2#27292(1?0o2x1|1.0E2q2M1=1u1w2l2y2/2;2@1=0f2U292Z2#330@2f172_1|0E0P0G0{0N0;032Y371#2Z2-0,3b3d0u3f000m3i2g3k373m053o3e0;0U3u2!0?3l393n3c3B000i3E3w2w3I3z3K3q0;0M3O3G3x3R3A3U000t3X363Q1'3a3T3r093'3H3*3J3p3r0J3O1n300I2#2@2'0o2)2,3R0g0P0X2?1v293{323j3_450X4c3)2m050R0;0X0S3O0H3(383;3z0S0;1j0I0y0g2J0w0*2g0O3_3:4j0:000A4G3Z4t0E0;0L3q0I0j0G1m1o4d4H2y4J0l0d3X0H4'4q4Z3a0;3b0j0L0I0N1L0y1.1I0I4p4r3y0P0;0s4`4*0,4J044M4i2y4P004R1L4U4W35520554564s4j060w0;0K5j3y4J0k0k4&4(4{3!0;3{0g0I0X0E4F4X3v4)4N4j4}00505G2!5I574+004-4/4;4y4@0O4_5O4h5k4!0;555#5x4t5m5o5q3R5s5v4'5*4j4l000S3c515J584Q5|5R0,1B0;1Q615%5S5b4T4V5.4t4J4%5#0D4(6j5Q680,5^0w4o5#6l3y590L674|0;0B070O0F6w5y005A5C2q5F5f5}1|6f5;6k6j5?5~5T0P4.4:4=5Y5!6K62055L0v6d4j590u0f0f2q0o6'5&4K6/696=530;0l6O6P5=5g596G5D6J3j6s3R5L5N33754O606h6Q5g5^2U0O4U0E6D7b6T6V5W4?4C5Z3'0e4f3|3`311n3~1n0O417B287B0u1^7w0e3~0?0f5$3y2U060y0S0u0R4y0T0U0;1f1h4x0%6g350e7N7M000x172L4.0!0O0H0u0j0*0w2c0`2q5B0G7=4/0g0H0j2:0H6Y0H0L0w2R2q0H1Q2O0w3q4C4E4q7v6F2U5B721n8l802V8k463|6a5d040K0k0a3h7u8v000H0d1t1%3R1~1-1/1;4a7y7'358l6R1|5^4n7l6(4v004x4z4B4D5E6@5h0;4L5)6~4Q4S5d8*4#7&3j6i5w8/7n5V6X7r6Z748V634~8Z6:045u7d8{6L3n5z8n6H8)6r946$969j8|8x6c8.9d8+005(6!6m055,005p9r6#5:9n9s5L0a971|9z8D338`6}9s5^5`0G9J9e5a9U6$0c657k9F6#6u8;9q9w5r0;8^3v9O6k9k6o6q799k6u9X5L6z6B9X709g8p9C9x6N9b6|9c9%4,6U8~5X918*6%8*6)6+6-8?8,ag7c9)5/6_6{6|9@9f2V9h735H9k779}an8_7e9Q0;7h7jaB8}6Wac4^7t8U7(7y7K493`1#7N7,0H7.4R2O7=7@2N1H0IaY1{0I7~2R0(880|8g7I8u4g716I8q8F8H8J2^4t8M211:2~8R4d5)8U7f4m0I9=936~8#8%4A0P4C0r4Eak6;a26t8:5c9(4Y9s8@6OataK7p6Y9_9m9?5g5ibo6E9p5ebt9D5'8*9z9Bao6e0;5t4p7a4j0g1F000p0H160H0G0u0V6U5Z86a(3{5ma+0H0h0N0h2D9i9NaE6#9R5{9$9x9^b~4|9Z0066c26EbAbGbR009,3Fa69:65bcay9obB009{6Cc77m5UaL7qaNca4IbMcv2y9HbN5n009MbKa3bScd8GbV2ybX0;b!b$451b0|a(0u81860u0H0X0G0E0w0Q2Ua/br7=b(140h929-a6b`c0a97o90cubQ5K0;6&cy5S6*6,0E6.c}6^bnc_6S6vd49t6`a5cK8WaG0YaIcp6(c=abct7s6ha`4g7x7J7A7(1#aS0Ldw0X0Z0#0r00

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013p[t 8bl].koqPi-ènu7h4 (S#"j:610&wae)fsy/é3=_5OmRcd;g2vr010Q0B050A0g090E060P090A0E0E0J0s050g030s000o010E0k0N0N0A0V0F000q0d090k0.0d0j060y0A0N030R060O0B0{0V0e0k0B0E010G0^0`0|0~0?0Q0g0U061h0c0Q0d0z0j0,0w0s060E050F090B0,1h0S0g0j0u0w0b0l1g060w1g1G0=0W1v0&0(0*0,0m0g0S0m091+0m050;010Z081L1&0)0+0s1*1,1.1,051@1L1=050V001?0m0&120E030A1D0s0T1G0'1{0,0D0#0B0j1a0B1=2e2g1`1(0s2o1L2r0N2t0002060f0V0d030d0E0g15170X2c0V0V0B0P2P1n2v0j290G050m2#27292(1?0Q2x1|1.0j2q2M1=1u1w2l2y2/2;2@1=032U292Z2#330@2f172_1|0j0d0V0{090;0w2Y371#2Z2-0,3b3d0A3f000T3i2g3k373m0s3o3e0;0I3u2!0?3l393n3c3B000n3E3w2w3I3z3K3q0;0L3O3G3x3R3A3U000v3X363Q1'3a3T3r0l3'3H3*3J3p3r073O1n300B2#2@2'0Q2)2,3R0P0d0X2?1v293{323j3_450X4c3)2m0s0c0;0X0D3O063(383;3z0D0;1j0B0K0P2J0g0*2g053_3:4j0:000p4G3Z4t0j0;0U3q0B0k0V1m1o4d4H2y4J0C0u3X064'4q4Z3a0;3b0k0U0B091L0K1.1I0B4p4r3y0d0;0J4`4*0,4J044M4i2y4P004R1L4U4W35520s54564s4j0N0g0;0x5j3y4J0a0a4&4(4{3!0;3{0P0B0X0j4F4X3v4)4N4j4}00505G2!5I574+004-4/4;4y4@054_5O4h5k4!0;555#5x4t5m5o5q3R5s5v4'5*4j4l000D3c515J584Q5|5R0,1B0;1Q615%5S5b4T4V5.4t4J4%5#0o4(6j5Q680,5^0g4o5#6l3y590U674|0;0y0S050R6w5y005A5C2q5F5f5}1|6f5;6k6j5?5~5T0d4.4:4=5Y5!6K620s5L0b6d4j590A03032q0Q6'5&4K6/696=530;0C6O6P5=5g596G5D6J3j6s3R5L5N33754O606h6Q5g5^2U054U0j6D7b6T6V5W4?4C5Z3'0G4f3|3`311n3~1n05417B287B0A1^7w0G3~0?035$3y2U0N0K0D0A0c4y0m0I0;1f1h4x0%6g350G7N7M000M172L4.0!05060A0k0*0g2c0`2q5B0V7=4/0P060k2:066Y060U0g2R2q061Q2O0g3q4C4E4q7v6F2U5B721n8l802V8k463|6a5d040x0a0h3h7u8v00060u1t1%3R1~1-1/1;4a7y7'358l6R1|5^4n7l6(4v004x4z4B4D5E6@5h0;4L5)6~4Q4S5d8*4#7&3j6i5w8/7n5V6X7r6Z748V634~8Z6:045u7d8{6L3n5z8n6H8)6r946$969j8|8x6c8.9d8+005(6!6m0s5,005p9r6#5:9n9s5L0h971|9z8D338`6}9s5^5`0V9J9e5a9U6$0z657k9F6#6u8;9q9w5r0;8^3v9O6k9k6o6q799k6u9X5L6z6B9X709g8p9C9x6N9b6|9c9%4,6U8~5X918*6%8*6)6+6-8?8,ag7c9)5/6_6{6|9@9f2V9h735H9k779}an8_7e9Q0;7h7jaB8}6Wac4^7t8U7(7y7K493`1#7N7,067.4R2O7=7@2N1H0BaY1{0B7~2R0(880|8g7I8u4g716I8q8F8H8J2^4t8M211:2~8R4d5)8U7f4m0B9=936~8#8%4A0d4C0E4Eak6;a26t8:5c9(4Y9s8@6OataK7p6Y9_9m9?5g5ibo6E9p5ebt9D5'8*9z9Bao6e0;5t4p7a4j0P1F000r0616060V0A0t6U5Z86a(3{5ma+060H090H2D9i9NaE6#9R5{9$9x9^b~4|9Z0066c26EbAbGbR009,3Fa69:65bcay9obB009{6Cc77m5UaL7qaNca4IbMcv2y9HbN5n009MbKa3bScd8GbV2ybX0;b!b$451b0|a(0A81860A060X0V0j0g0i2Ua/br7=b(140H929-a6b`c0a97o90cubQ5K0;6&cy5S6*6,0j6.c}6^bnc_6S6vd49t6`a5cK8WaG0YaIcp6(c=abct7s6ha`4g7x7J7A7(1#aS0Udw0X0Z0#0E00
Exercice 17 : validees(commandes, limite)

Des escrocs ont réussi à voler un numéro de carte bancaire. Ne sachant pas quelle somme est disponible sur le compte, ils passent un maximum de commandes sur des sites Internet sans même attendre la confirmation de la Banque. Cette dernière traite les transactions les unes après les autres et bloque toutes les suivantes dès que la limite disponible est dépassée. La transaction faisant dépasser la limite n'est pas validée.

Compléter le code de la fonction validees qui prend en paramètres une liste d'entiers commandes, correspondant à la liste des prix, ainsi qu'un entier limite et qui renvoie la liste des commandes validées jusqu'au dépassement de la limite. Si la limite n'est pas atteinte, toutes les commandes sont validées.

Exemples
>>> validees([20, 30, 60, 40, 10], 130)  # 20+30+60=110 20+30+60+40=150
[20, 30, 60]
>>> validees([20, 30, 60, 40, 10], 1000)  # 20+30+40+10<1000
[20, 30, 60, 40, 10]
>>> validees([20, 30, 60, 40, 10], 10)  # La première commande bloque la carte
[]

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013wl/i[uS "7kagdf04t](vsPho= p9n,x._r8;b2em5)cy6&+:13010g0G0k0e06040o0a0K040e0o0o0s0b0k060u0b000t010o080H0H0e0B0L00090r04080*0r0w01050;0?0^0`0/0g060n0a0@0B0d0g0r030w0(0Q0b0a0o0k0L040G0(1f0f060w0P0Q0z0c0G0H0a0Q1E1o0.0S1c0!0$0&0(0q060f0q041S0q0k0-010V0E1t1N0%0'0b1R1T1V1T0k1#1t1Z0k0B001!0q0!0}0o0u0e1l0b0F1o0#1'0(0h0X0G0w0e0H0G1Z1|1~1&1P0b271t2a2c0-020a0p0B0r0u0r0o06110w0a0T1`0B0B0G0K2y142f0w1@050k0q2L1=1@2Q1!0g2h1(1V0w292v1Z1b1d242i2X2Z2$1Z0u2E1@2J2L2/0:1}2z2&1(0w0r0B0@040-0Q2I2?1K2J2V0(2`2|0e2~000F321~342?360b382}0-0R3e2K0/352^372{3l000j3o3g2g3s3j3u3a0-0I3y3q3h3B3k3E000M3H2=3A1O2_3D3b0c3P3r3S3t393b0C3X3J3Z3C3#0-0v3y142,0G2L2$2P0g2R2U3B0K0r0T2#1c1@3/2.333-3{0T433R250b0d0-0T0h3y0a3Q2@3(0w0h0-0n3a060T0G0o3-3Y4a0,000m4u3'4a0w0-3{170w0T4t15444v2i4x0x4g4i3i4D001V0H2x0G4A494N0-0J0P3H0a4(4h4M2_0-0k0r0V044Q4+0(0r0-0s4=4B2i4W0-0i4'4)4R3K4E0r4G4I0A1}0&0G4s4{4!1(4^004`4K3f4*4|1(4x070l524(543(4c000h2{5f4j4C0-2,060y5B3i1j0-1y5I55004F0@4H5e5l2K5v4w0-4&5U0.4)5$5n5g0(5x064f5!5&5C2i4T4.4:5N3(5i0O5?5D005F5H5,5W2i5i0N0f0k0D5`5/0-4V4X4Z5.5p5Y5t5%5$611(5x2E0k080B13604?3j56584s5a1'5d4J2/0t6i5u6t5:4/3a685h4_6K374-6I4;6s5o4@0-5_6S5'6u5|0B5G6h6j6G6v5R595b0o6A6d5J0-0z6.5O0e0u0u290g6=3(4x4z5!6k6O6!6$716t4x0J6h724b0-6n6p6r2/5-4S6(1~6*6z5T6C14463:3.2-143=140k3@7x1?7x0e1$7s053=0/7G407I0T0V0X0o00

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.1280137f:P=cw" /958p[)o;mge b2406di<Sxsy]_vakhu3+,(rn1.010u0n0y0G0v0x0B0o080x0G0B0B070a0y0v0g0a000b010B0J0l0l0G0O0C000z0j0x0J0*0j0P010c0;0?0^0`0/0u0v0F0o0@0O0H0u0j090P0(0Q0a0o0B0y0C0x0n0(1f0m0v0P050Q0R030n0l0o0Q1E1o0.0S1c0!0$0&0(0I0v0m0I0x1S0I0y0-010V0p1t1N0%0'0a1R1T1V1T0y1#1t1Z0y0O001!0I0!0}0B0g0G1l0a0q1o0#1'0(040X0n0P0G0l0n1Z1|1~1&1P0a271t2a2c0-020o060O0j0g0j0B0v110P0o0T1`0O0O0n082y142f0P1@0c0y0I2L1=1@2Q1!0u2h1(1V0P292v1Z1b1d242i2X2Z2$1Z0g2E1@2J2L2/0:1}2z2&1(0P0j0O0@0x0-0Q2I2?1K2J2V0(2`2|0G2~000q321~342?360a382}0-0K3e2K0/352^372{3l000r3o3g2g3s3j3u3a0-0e3y3q3h3B3k3E000t3H2=3A1O2_3D3b033P3r3S3t393b0f3X3J3Z3C3#0-0d3y142,0n2L2$2P0u2R2U3B080j0T2#1c1@3/2.333-3{0T433R250a0H0-0T043y0o3Q2@3(0P040-0F3a0v0T0n0B3-3Y4a0,000N4u3'4a0P0-3{170P0T4t15444v2i4x0M4g4i3i4D001V0l2x0n4A494N0-0i053H0o4(4h4M2_0-0y0j0V0x4Q4+0(0j0-074=4B2i4W0-0s4'4)4R3K4E0j4G4I0E1}0&0n4s4{4!1(4^004`4K3f4*4|1(4x0h0D524(543(4c00042{5f4j4C0-2,0v0A5B3i1j0-1y5I55004F0@4H5e5l2K5v4w0-4&5U0.4)5$5n5g0(5x0v4f5!5&5C2i4T4.4:5N3(5i0L5?5D005F5H5,5W2i5i0w0m0y0k5`5/0-4V4X4Z5.5p5Y5t5%5$611(5x2E0y0J0O13604?3j56584s5a1'5d4J2/0b6i5u6t5:4/3a685h4_6K374-6I4;6s5o4@0-5_6S5'6u5|0O5G6h6j6G6v5R595b0B6A6d5J0-0R6.5O0G0g0g290u6=3(4x4z5!6k6O6!6$716t4x0i6h724b0-6n6p6r2/5-4S6(1~6*6z5T6C14463:3.2-143=140y3@7x1?7x0G1$7s0c3=0/7G407I0T0V0X0B00

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013=a3kv2nP1l8 6&Swm;u[s9rbp .c7_/5:)itfe40o]ygd"(,+h010L0E0C040B0c0n0s0u0c040n0n030M0C0B0r0M000e010n0l0j0j040p0J000h0H0c0l0)0H09010x0:0=0@0_0.0L0B070s0?0p060L0H0i090'0b0M0s0n0C0J0c0E0'1e0K0B090z0b0t0v0E0j0s0b1D1n0-0R1b0Z0#0%0'0Q0B0K0Q0c1R0Q0C0,010U0q1s1M0$0&0M1Q1S1U1S0C1!1s1Y0C0p001Z0Q0Z0|0n0r041k0M081n0!1&0'0D0W0E09040j0E1Y1{1}1%1O0M261s292b0,020s0a0p0H0r0H0n0B10090s0S1_0p0p0E0u2x132e091?0x0C0Q2K1;1?2P1Z0L2g1'1U09282u1Y1a1c232h2W2Y2#1Y0r2D1?2I2K2.0/1|2y2%1'090H0p0?0c0,0b2H2=1J2I2U0'2_2{042}0008311}332=350M372|0,053d2J0.342@362`3k000F3n3f2f3r3i3t390,0y3x3p3g3A3j3D000f3G2;3z1N2^3C3a0v3O3q3R3s383a0d3W3I3Y3B3!0,0o3x132+0E2K2#2O0L2Q2T3A0u0H0S2!1b1?3.2-323,3`0S423Q240M060,0S0D3x0s3P2?3'090D0,07390B0S0E0n3,3X490+000N4t3&49090,3`16090S4s14434u2h4w0O4f4h3h4C001U0j2w0E4z484M0,0A0z3G0s4'4g4L2^0,0C0H0U0c4P4*0'0H0,034;4A2h4V0,0G4&4(4Q3J4D0H4F4H0w1|0%0E4r4`4Z1'4@004_4J3e4)4{1'4w0m0I514'534j0,2+0H0u0Q0V2X0w4E0?4G4X5k2J5m5f4?4^5e4i494}00505I0-4(5K5P2h4b000i1Q1s5O4R5w2r5z5B0E5D565F0S5'3A5h0g0c0C0k5=4j0q0,2k4Y5Y5o0,4y5U5u4B55575d674=0M4w0A5|491i0,1}0L6i2h4S4-4/6o5g0,0P6t366a5:6c2:6e5p625(005x5+1x5-5E6m5H6C5n0'4w5r5U5X3h5@5_0k5j2.6V544T0B4V0C6O4K6Q6f0,4%5U0e5W5W686p4,4.396x0M5h6!326$5v006r6{6U6@6u006w776e4S6M5G4I6P5L6-000m6F6%6I5A6K5.6b7n3'6S5s6=786y007f585a0n5c7h6+7j5h0t7u6900040r0r286n6d6,4w667i637A7C6B7I7Z7k7m7U7j4S7p5,7s6A7M4!000I6h6:6=527d5)5y7q5C7#6|6~6|7+5*7~6L5/6N826v6|5R307^7`6,5!2D0C0l0p127c6,7e897g591&7G3O0x453/3-2,133;130C3?8F1=8F041#8A0x3;0.8O3~8Q0S0U0W0n00