moyen
Dictionnaire des antécédents
Un dictionnaire associe des valeurs à des clés, comme { "Paris" : "P" , "Lyon" : "L" , "Nantes" : "N" , "Lille" : "L" }
qui associe "P"
à la clé "Paris"
.
Suivant les cas, une même valeur peut être associée à une ou plusieurs clés. Dans l'exemple précédent, la valeur "L"
est associée aux clés "Lyon"
et "Lille"
, on les appelle les antécédents de "L"
, tandis que "P"
a la clé "Paris"
pour seul et unique antécédent.
On peut ainsi construire le dictionnaire des antécédents {"P": ["Paris"], "L": ["Lyon", "Lille"], "N": ["Nantes"]}
.
Vous devez écrire une fonction antecedents
, de paramètre dico
, qui renvoie le dictionnaire associant les valeurs de dico
à la liste de leurs antécédents dans dico
.
Notes
Puisqu'aucun ordre ne vous est imposé dans la construction des listes, une étape supplémentaire de tri est réalisée lors des tests de validation.
Par ailleurs, nous garantissons que le type utilisé autorise bien les valeurs à servir de clé.
Exemples
>>> antecedents ({ 'a' : 5 , 'b' : 7 })
{5: ['a'], 7: ['b']}
>>> antecedents ({ 'a' : 5 , 'b' : 7 , 'c' : 5 })
{5: ['a', 'c'], 7: ['b']}
>>> antecedents ({ "Paris" : "P" , "Lyon" : "L" , "Nantes" : "N" , "Lille" : "L" })
{"P": ["Paris"], "L": ["Lyon", "Lille"], "N": ["Nantes"]}
.65038.9875.128013lS]et-d5f18umaèg,_/R=Vin{
6)yàqPhc[(bsx.p;r4j'"ovw73k:é }2030d0a0b0k0t070I0!0E070k0I0I0r0R0b0t0L0R020w030I0i0j0j0k0N0z02080S070i0_0S0u0!000k0j0L0M0!0q0a130N0B0i0a0I030p101214160~0L02031B1u1E0p1B0~0d0t0T0.0:0=0@0D0t0m0D071S0D0b0|030)0H070a1N0;0?0R1R1T1V1T0b1#1%1Z0b0N1C0b0D0.190I0L0k0u0@0$0R1(1P0R0f0+0a0u1h0a1Z1~20251*281%2b0j2d02060!0C0N0S0L0S0I0t1c1e0'1|0N0N0a0E2y1u2f0u1C0p1`2K1@1_1^1!0d2h0@1V0u2a2v1Z1K1M0/1)2U0t2W0u0S2!1Z0L2D1C2I2K2;0 1 1e2$262*0N13070|0g2H2^0}2@2g2`1*2|2~0|0$3220342I2T0R390k2 020W3d2J0~3g370@3j3l0O3o3f2^3h3u0|0e3x3q3z3s3i0S2}3k0|0x3E352_1O383J3a020V3O3r3R3t3T3L020h3x1F2/1u2!2N0d1_2S3H0E2+2n0%1L1C2.0a2:333(3=0'3}363Z0R0X0|0'0f3x0!3P3A0f0|200b2E0a0'0u0b1t1v3~3Y2%0R0{020G3(4q2{470t3=4w3G444t0y0Y3E0!4J4b4x384z3=0o4g4i4k4m4a4c3H0S0|0r4V4M0@4t0v0#4I4K4W4446020f3J4#4D4r0u0|0/0a4C434r4t0n4=4}4y020T3k0a0i0N513Q4r0S0U0|2(5a3A4O0S4|5b264Y020K5l5i022x1n4n2?4$4s0|0G4G4*4K4+5y4.0t494o3e4L4?53551%585h4X5e022*0b5S445d5f0u5Y4@5j4Q4l4S2a4U5K2J4,4~0|4H5.0}5E5_5F5N4N021K4P4R0E4j5,5w4p5|4%0|0F5r3H4^54565R5@5:264t095%5n4Z6m1*4t6a6h5y6d4`6b4E0|6l5@0w5`4J6i1*4.0a0,4{6t675z025?2;6C6D5E6F3t5(61634l653e6U6N6s5x6M6d5P57596L526q6z6x5c0|5q6.5m5}0k0L0L2a0d6=6j5A715}6w6_3h4F5D5M6/0@4.2D0b585$5@7b6`6V5~4A0S5)4h624T6!3p1u403|3)7y0p3,1u0b3.7D2Q2L0k1$7A3,1A427l0R2D0j0o0f0k0X0a0o0D0W0|1m1o1q1s0!6P3~1H340D0g0!0t0d0@0I191b0t1d0c0I200I0c5u0j0I0|181a2y0!7}0u0-037x5t4h827w3?1C0k3h0D0a0k0'0N2V460!0D2D0f0@017@867`0u7|7~808f830!0_0b1%0@0C0a3K2)0b0!8r0|05041u0k2K7.342!8l1W1.1X2e6M2j2a2c0|2p080E0N0`8R0C0z1`1d3(3{7O2=3~8d6$4.486p3t4e026X7t74684u9c3i5j9f4F7*3e6R6E6u6W5*7s64960R5o4!7j6$4'4)6B6T5G0|4:6-2;7k5s769H6$5!5t7i9L9o7n4B773H4t9k3p6S6$6*6f9G339I4X6o9x9R5 5k9U6y026'667c9g029K9?7P6k7a9C6M5H5J9Q6)0|6+6ga39@9N5W9t9N5g9+a49S7p9a9s9/5;6O9~6D9!9p7r6Y5-6(9@6r9f9#5Q9%6#5y9}afa99*a89|69ay4_1%9i6;9Bap9D026I0I6KavaJanaQ6S9nag9-7q5+6ZaO9;aL6eaAa+6AaX3h5o6^a=6c4f6}6 a+4val539`aC6M79a!9(4-0|7f7h9t6da'aja*6B8h417z2K7M037.7:7=0R558?4R0|0s140t4R038k3H8m8o8O8T8t8v8xbsby5*248J8L0R8N8P5,8S2(4.8V8X8Z0g341B0C0S580.0D0k7'1|0i0L1%4b8d0G4`0n0!a60N0ybi3|7:070!7U1b8I1s4h0N8S0Q7JaV0u620!2A8c8ib`b}02ce7~8S1'5 2y2b0t2Dce7(4g0Z0E0Z7t0!0k282z1'1a0tcB0=0S0E0t8O8S8k1V0I4hb;8i0F4`6A8d88cH4hc0c5cn0.0;b^0(cu1|1i070Zc6cObUcR1'0a0J0tcR4RcT41be9qat0I0Fb`cX8i0!2a7:0u0T0S1q4gc=0jc:0D3?c~3|6|6~0u700pcY0dcmb:0E0;1|4l0N0*2D6^1I1D020s0S4AcH0i2Wb_bxc}1qcH2(2xbycQ1'dLcFc{cS0T7;c^8R2.cK0l2A0I0zcR0Z130_7'2m4l0!0Ac80k0Pb'8Rcf8d768ddD8#1L8%1-1W1Y7O3h8,2l2n8:8=8@2q8`dj9P3~8~3P906#92aS95aF7P0u98bfau9{7873b05}9-a+5Cb6aqaha(9rbgaIa?aH9'9y0|4(7a939E4;eu9JaNeD9d50eZa`a.6,ac5UaeeOe)eFe$9u6@a-817uea9V5AeH6Q9ZaS5Ibca59$e,0|abe(5Ze-el5LeJd0as9be=9Wao5`fe7oeLd2a+9=b39@aze+fiaPe/5ZeQfdaD69a;339m5_fm60d1fha_9:fr5/9Rcifw02fEfs7Pa@a-dna}fSa fM5'9_e#f%7202b|eIaSba0Nfc2Jb7f'ffa)ez9lcjbk3+3_0~7B0(0*0,02.
# Tests
(insensible à la casse)(Ctrl+I)