Partition de tableau

Écrire une fonction partition qui prend en paramètres un entier pivot et une liste d’entiers tableau et qui renvoie un tuple composé de trois listes :

  • la première liste contient les indices, dans l'ordre croissant, des valeurs de tableau strictement inférieures à pivot ;
  • la deuxième liste contient les indices, dans l'ordre croissant, des valeurs de tableau égales à pivot ;
  • la troisième liste contient les indices, dans l'ordre croissant, des valeurs de tableau strictement supérieures à pivot.

Exemples

Python
>>> partition(3, [1, 3, 4, 2, 4, 6, 3, 0])
([0, 3, 7], [1, 6], [2, 4, 5])
>>> partition(3, [1, 4, 2, 4, 6, 0])
([0, 2, 5], [], [1, 3, 4])
>>>partition(3, [1, 1, 1, 1])
([0, 1, 2, 3], [], [])
>>> partition(3, [])
([], [], [])
Compléter le code du professeur ci-dessous

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
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

.128013r5aSe )sP4_k,(o8.-9myibw26u]:1d70vl;3t[pfcng=/h050F0f0M0d0w0J0i0g0Q0J0d0i0i0T010M0w0O010406050i0B0u0u0d0b0v040e0p0J0B0:0p0R050U0`0|0~100^0O04051g191j0U1g0^0F0w0I0(0*0,0.0*0R0S0B0d0S0f0s0O0v0M0V170g0V0w0S0V0J1L0V0M0?050Z0x0J0f1s0+0-011K1M1O1M0M1U1W1S0M0b1h1G0(130i0O0d0R0.0z011Y1u010P0#0f0R0d0u0f1S1@1_1~1!211W24260?0a0g0j0b0p0O0p0i0w160R0g0X1=0b0b0f0Q2r19290R1h0U1G2E1.1:1/1T0F2b1v0w0R232o1S1p1r0)1Z2O2Q0R0p2U1S0O2x1h2C2E2+0_1^2s2W1 2!0b0}0J1S0d1J2x0P0.030l0l0Q2#0f1O2Z0p0s0E390?0g0E190d2,2/0@2.2a2;1!2?2^2`2|0f2~01303234362R390s1|040g0z3f3h1_3j2C2N013o0d2_1h2{0V2}2 31330X3y2!3A0L3c0L3G2B3i0^3K3m0.3N3P053R3T3u3V3x2P3z3a0k3c0k3(1a3*3k2:1t3n0p2@3O3q3S3s3U3w3X3`3Z3a0c3c0c402+3+2/3L3/4a3?3v3W354g383a0A3c0A4m423,453.473p3Q3r3t4u3_373A0G3c0G4D3I4o3l4G3M4I494K4b4M3^4f4P3a0q3c0q4U2D4W442X4Z483:3=4c3@4e4w4+0s0t3c0t4:3J4p3-4^4J3;4L4d4v3Y4y390H0?0E0H554=4q4!4`5c4}5e4x3A0E0E5j3e0U3g3)4V435o4_4s4|4N4*3{393C0E3F5A3H2D1k2)192U2H0F1:2M584v2T1q1h2(0f2*3i5C5S4v5,2a0w0F0.312C5v3q5?5^4~5f5{0g2f0f5~5t505x2E5B4F4@0m0?0X0P5.5;4?1 0y3c6h5E580R0P0?1^0b0:2A413I6o4Y0=040o6n6b2=6s1q0p0M6E576A0?0n6h0g6z4@0R0?1+0f0d0B6L4X4@6B0h0D6h0^6x5S3K5}015_2/3A3C5b6/4)4 5L1|6225646:5 5u3a6@5Q0g776R6F3n0?2P1p0Q0f0i0l2P0P0f0b0w0f0B0b6Q6S1 0p0?0T7r7a0.6B0N0C6*6!2s6_0l5`3a3#4K7G665L3#6~26654O7O1S76787s7b047d0w7f7h0f0S3O7x6M4@7u047w6,3D7Y7z0?7B7D7=5E7G7I0s3}7L5@717N4h801}637S5K86813G78797-6G7!0R7e7g7H0B0O7l7n7p7,6#7t7v8t6j1!7A7C7=6+2-6.836;1_3A4j828a6{864j7Q706`604i7V3g8f7@016d040P478x4q7c8(580p6l8j8+4Y0R0x0?0b1_1B7E3L6B6D7|7y3M8?042e8{588}958;6V0d1V6X6Z8 8h8z0?0h6(7{8E4p7~6=4z5|8G72504A8Q8M8T0s4A693D8f7X908!0w6g7=8g8u7Z6W6Y986$7_9P8i0w9S9h048B2+9K8y0.7/020J0M0K8:6T6H0I6J9V7^046)8C8{9o8I3a4R8L847T864R9w9 8b5g9}8e9Da98Y6U8j8l7h7j8q7o7q9f9L9$0?0r9;3M0?0d0O8p8kap97ak9#aq7!aw9i9l5-8F5~7 4-9~8S730s4-a3aL50aJa8aa9F0?4w9I9Zab9a9c9Oay8|9Ra(6p8*a+6N9X9,8v04020S9*a;7Z0O6I6Ka.9Q9?aE6yaG717 52aK9t5L52aPb986b7aTa99E9g3.7c8k7$8m0`8p7maiap7/aoa 8iasau0FaC6Capac9Ubw9W0hb26-9n9s7 5k9r9xaMbObc855gbO9Bbh9!3L8!350i0fbB9@4n9_bM9p39686^9sbU5v5xbTa0bVb:7WbY77a!adbn7(7*0JbtanbDarat23bAbG9=8~9malaAbFcgaz6%bJ6i0g9`0R5v6@2{7Mb`cs886 bQ67758Wbich8!2x0M7p189J8Yaxck8)c17%7i6qah8scd016B6PcL90bEbmcR7)7+cWcYa`bkcQbo8ocUajcO96aD9^7|0U5:5T5+5V5(190M5Yd22K2F9b1W2E5W6+0X0Z0#0i04.