Dictionnaire de bijection
Le cadre
Deux repas ont parfois la même liste d'ingrédients, mais pas dans le même ordre, les repas sont alors identiques.
Mais pour Python, l'ordre d'une liste compte, comme dans l'exemple :
🐍 Script Pythonrepas_1 = ["pain", "beurre", "confiture", "chocolat"]
repas_2 = ["chocolat", "beurre", "pain", "confiture"]
Il est clair qu'il s'agit des mêmes ingrédients (chacun présent une seule fois), donc du même repas.
On souhaite construire le dictionnaire bijection qui pour chaque indice d'un ingrédient de repas_1 donne l'indice de l'ingrédient correspondant dans repas_2.
Ici, on a bijection = {0: 2, 1: 1, 2: 3, 3: 0}
En effet :
- L'ingrédient d'indice 0 dans
repas_1 est "pain", il correspond à celui d'indice 2 dans repas_2.
- L'ingrédient d'indice 1 dans
repas_1 est "beurre", il correspond à celui d'indice 1 dans repas_2.
- L'ingrédient d'indice 2 dans
repas_1 est "confiture", il correspond à celui d'indice 3 dans repas_2.
- L'ingrédient d'indice 3 dans
repas_1 est "chocolat", il correspond à celui d'indice 0 dans repas_2.
Exercice
Coder une fonction bijection qui prend en paramètres deux listes repas_1 et repas_2 des mêmes éléments (chacun présent une seule fois) et qui renvoie un dictionnaire qui associe les indices du premier aux indices du second suivant l'exemple précédent.
- On garantit que les listes ne comportent que des éléments distincts qui sont immuables pour Python (des nombres, des chaines de caractères, ou des tuple de valeurs immuables). Les éléments de la liste peuvent donc être des clés de dictionnaire.
- On garantit que les deux listes sont obtenues par mélange l'une de l'autre.
On garantit que les listes font moins de 1000 éléments distincts.
.128013x/.Tr;nbylaeu)*dV6z3×^Am?(P02-],5fq7}8 _o={GpcwgQv41kRIéhtsàSLC[ji:E050q0m0*0l0=0k0+0N0U0k0l0+0+0Q010*0=0T010406050+0n0y0y0l0f0j040-0P0k0n180P0h0N020l0y0T0g0N0$0m1i0f0J0n0m0+050c1f1h1j1l1d0T04051Q1J1T0c1Q1d0q0=0Y101214160)0=0W0)0k1+0)0*1b050{0i0k0m1$1315011*1,1.1,0*1@1_1=0*0f1R0*0)1{1(010I0}0m0h1w0m01101o0+0T0l0h160D1=2o2q2c1}2f1_2i0y2k040a0N0B0f0P0T0P0+0=1r1t0_2m0f0f0m0U2O1J2v0h1R0c2a2!2729281?0q2x161.0h2h2L1=1Z1#111|2.0=2:0h0P2@1=0T2T1R2Y2!351e2p1t2_2d2~0f1i0k1b0!2X391c382w3b1}3d3f1b0D3j2q3l2Y2-013q0l3g040u3u2Z1d3x3o163A3C0Z3F3w393y3L1b0H3O3H3Q3J3z0P3e3B1b0s3V3m3a1%3p3!3r040K3)3I3,3K3.3$040M3O1U331J2@2%0q292,3Y0U2 2D0^1!1R320m343k3}470_4f3n3@010#1b0_0I3}3?2`010V1b0N4s3X4m0h0I1b0i0=0;2U2W1K4g4t2d1a040A4z4l4u0h1b2T2p0+0O3i4K3v3*3y4O0G3O4y4M3p4V0m4X0O3t4#2Z4%3Y4O0o0?3V0N4 4,4A4u0+2t04011B0h0Y0P0=1`0n2P0=2V0=1s2i0=2T0N2Q4F4H5h1s014~504_4B4p5g0P4+5w4u0P1b0Q5B4-3K0i5y2V4R3+4u4O0A0o5u4 5C2d4o040I3!5H523c1b0=5#4S2d0P4w042|5*5O3c5K040f2q0W0m5N4(1b4Q4@4k5=3p5@2A5}4`5 675x5^4:134Z6a5P1b0o4|5T505U5I4n1b5Z0f5;3R1b0;6t3Y5-5(0h6x4B5@5_0h5{6g4N69615V641b666L6o5Q6I4.6c4;4?376R6i6k61066m6(5v6o5X0=4r61515+6U4W6e4!6Y5$1}4O0:6T3K5(6~014O0F6C5D5F5G6/6M6 6V6e6X4L6`166|714U046w6Q7g721b0F4}6$6)7u6*7o7k1Z47717i7n6;7b5)7D637h7q755,5F7L6U7m356%7w7E6p6c0*0n0f6B796o7y5z3)0c4i4e3~7,0c411J0*437;2*2#0l1^7.411P623y2T0y0O0I0l0#0m0O0)0u1b1B1D1F1H0N7s371W3l2@3y0l0q0y1s2N5i1t184O1P8m8o8q2O0E180*25040x0Y2U0N5Z0h5r1t057+042h1g0m5_0*5|7*482!1X1S040X0n2q2,1s8J0|0*0N5e0N2p0f477Y0 2Q1.0+8V0N0`0N1F008+0+1`940f8.8`002|7z1`1e271s0W8Q0*2X9f6G045n1`120N0Y3B0m7Y0G0N0}8~8|8;1p0 0(0k0(0W2q98001q0}0=964y8P8R2C8U0m0A1i0O8{8V5S8X4j901G9P8Y6F5{0A2A9V0l9X9N9Z9!8P1U8k1!3y1 1-1/1;7 3Y2z2h2j1b2F0-0U0f198.0B0j2a1s3}4d62364g9^6+4p0m6.6_7U5.4y7H3R4D045p4I8s7B6Kar7I3z4/4;6^7f7U4)7O7b6?4Y7e4$6Z046#7R6m7a01541b572h5a5c8/5f8M5k5m5o4GaA5s6laY7%7A7#7o5E0478356:aF0h5@7z9jav684P9!aW7TaF5X6raNaG5/aC044*a`7U7k0bbf6z5/7!a a@5@9R8T0l8Vbi60aE6u7c4YaJaS7o4{8h3k7S6)aYbd5!blb16vbibkbt7$1b0jbp5.5:bR3Rbv0h8S9TbA7jaH7dbiaVbL7vaXan5/aq3kb0bDbob%6y77bf7kbZb64m4ObK3vbMb@b^7x5L5Ac66h046}ch5%bhcl6{7Kc04ma|a~b|a@bT7tbb3y5X2T7X7Zc3cf7)9^1W3 7/4b1dcL0Y9`2^4m8n8p0h8r8+0q5`8T1b8w3YcT8z8s8B2N8E0r0P27951o9L8+1H0*0E0m0k1_8;8T6r1i0h8}0z9_1d0n0k3l1.040.0l0N0+c=2O8;0f0(94d20(1`5g0=0N2:0N0k00c^8;139w1i9N8~c|950n0I2f0+9I1`2K7Y0N8p2|8_1`0!0CdT0N9E0(2Cd20+0d0N0@1tap0I8 9q0q0P0n7{0N0id.111`d)4I9(a%5l8+aY1j2N0)1i8V0b1b090AdSdT0ve90C0QdS0w0s09b9b|2J0(8U8s0+9w0U1`1Fdqdw5_9N5j7`1_0d1Jda1dda8G8I8:0y0}1.cX00dWdY0*epdtddd-d/c}d=0nd@8Jbx2Nb}c%aa2ae30me504e7ef0R0!0D0Lei4+elen1seRer9%dq0hdv9A4X0Newdf0h2i7{eB0ceD1Jd73l1Q0/0P1h2h8.d*aa0m0t0E5a0n0 dL0f9%9p1`8V9A1f1!9I8J2|9N948~1t8:dP0{d20Nd48j1Y9{3Y9}211:2u7oa32B2Da7a9ab2Gae0)ag6Lai3*ak4$am7o0U0!1b030N0edw2Q0Tc 3_8L8W7RbO7k0I2I0y71at7j7k6Fd-gaco16gcgi4n7k0=1x3!b5bWce040+0)dF0I1_3V3Wbm1b0{eKg4cv6octbfeJ3h0C71a|0p0p71gL043(6$cwbE6fcr76a}bf7CbC3YdI6q71a!5627eY0Og-0=1b0Rb.cng)4m2M1b0Lg-555tg!5W6qbQgsgCg{gHa{b#bshbbm6EcZb-gl7kgEdDb;74gWbXgugwdGgzgl6Shkb/bFb;3=gtaP4=bp7Nh4cpcjg-0lg,glg.170fg;g?g^g`7Gg|53g@04h0hOh2bfbP6shI7Fb!6Ac3hh6GgGbHaLaDaKbS04hmhvhX6JaUhpg5hrgvgxh}h_5~4Pg`hEaR4^aTejcagBh`7zcgh8aFgJh+bgaz8Mhjh~6=6dhAhw1bbVhfh`ibhBhq7oh)cFha3ve%cshdh/4Vhiixi9hyh{0|hniQb=cacdh97QiA3yinilbDijbickith,iQi1b?cz3Y5X1|8Tgri$3YgeivgZi.7phKiShWi7b7i;iJaYctcuj9hriCiQi-j66bi#h?aF73cH8Y7-2!7}0^0`iU0 3Y8uc#1e1g1D1l0%0h9c0N6^jB1Nfg04fi0h8|hR5l5d8NjP9g044deJ8T9k2I9m5n5g2Oa-9d8P2|8H0f941J8Pe 0N1|0P0Ua)0,100)0l8edV9FeP9o9)4jhE4!j=f79xjF5g0mfb8!7/ju0}0+8kki0~3yjy3wjJ1k04jEjG6Xkr1O8#d%dx8?d.6F8.8O9*i 4?j=47jOg:jRj%2T2V1Cfldt1`b48sj*9od10q0(kf3lkhhmkk1Ykmjw4m0W0n0=0_jz1LjC040Sk;2Q0l8H0Ude0*0jc}8Ka,c{2XkxcQ9|1/fWa0aYf!a52E0Na8aa0Tacf+f-37f/8i37f?7U5X4qgb4x7jaxiq4Jj1hxj1i~aIbUiHjflE6ic93GiZh`j-8Tj:ioi(i|6D5Li{jli85Ra?b_beiognlJl+1bb i)6yiMl+b)b+byh=idbIh^l#i}hzj0jiciiXlP7ugXlSj/l{a1c71bjhl cs1b0dmjbij82ZiKg#jcmnjamimk6$cbgXi+lVhHl;lY04b4bAifm66niFh6h*mB4TcxlMbjiHc5mM5,l?mT6N8Qb*9Sl`ism3cmlLm%hJm51c7vms04mjfb7Rmwb_cC7Yhejdgtmyg59#7.f/cOk(0_k*n4cM40k-04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)