Ordre naturel pour les chaines de caractères
Le cadre
La comparaison des chaines de caractères se fait souvent avec l'ordre lexicographique. Ainsi
"bonjour" < "salut", en effet "b" < "s".
"1345-test" < "138-test", en effet "1" == "1", puis "3" == "3", puis "4" < "8".
Mais certains logiciels utilisent parfois l'ordre naturel pour comparer des chaines de caractères.
Dans l'ordre naturel , on considère les chiffres consécutifs comme un seul nombre, puis on fait la comparaison lexicographique.
"1345-test" devient [1345, "-test"]
"138-test" devient [138, "-test"]
Et on a [1345, "-test"] > [138, "-test"] ce qui est naturel !
Exemples de transformation
On souhaite transformer
"A115-13" en ["A", 115, "-", 13]
"1345-test" en [1345, "-test"]
"Dossier-0" en ["Dossier-", 0]
- Etc
Transformation réciproque : recolle
Réciproquement, on peut facilement recoller ["A", 115, "-", 13] en "A115-13".
🐍 Console Python>>> recolle(["A", 115, "-", 13])
'A115-13'
Exercice
Coder une fonction naturel qui prend en paramètre une chaine de caractères entrée
et qui renvoie une liste composée d'entiers et/ou de
chaines de caractères sans chiffres issue de la décomposition de l'entrée.
.128013x/.Tr;nbOylaeêu)d63Am(P+02è-U],59fq!7B8 _o=pcwgv4F1`kRéhtsSàLC[ji:E050r0n0)0m0;0l0*0O0T0l0m0*0*0R010)0;0S010406050*0p0v0v0m0f0k040+0Q0l0p170Q0h050c1e1g1i1k1c0S04051A1t1D0c1A1c0r0;0W0 1113150(0;0V0(0l1R0(0)1a050`0i0l0n1M1214011Q1S1U1S0)1!1$1Y0)0f1B0)0(1(1O010I0|0n0h0m0v0n010 1n0*0S0m0h150A1Y292b1|1*1 1$22241a0a0O0x0f0Q0S0Q0*0;1q0h0O0^270f0f0n0T2y1t2g0h1B0c1`2L1@1_1^1Z0r2i151U0h212v1Y1J1L101)2V0;2X0h0Q2#1Y0S2E1B2J2L2?1d2a2z2%1}2,0f1h0l1a0O0Z2I2`1b2_2h2|1*2~30320A352b372J2U013c0m31040O0t3g2K1c3j3a153m3o0O0X3s3i2`3k3y320G3C3u3E3w3l0Q2 3n320s3J382{1N3b3O3d3p0L3T3v3W3x3Y3Q3p0N3$3L3(3N3P3z0H3.393:3G040Z0z3^3V2(3;3Z0Z341u363K3_413{0Z3f463h48402}3*3o0Z3r4e3t3U3F4j1a0Z3B4n3D494i3=4s3I4v4g4q4z3|3S4C4p3M4b3#4I3%4a4r3|3-4N3/4P4F0Z3@4T4x3X4F0A3~4Z4h4#3Z0A452?4D4K4Q0A4d4/4J3`4=4m4^4O4y4,4u4}4U4 3+0A4B524!3)4$4H584*5a4,4M5d4E4,4S5i4;4$4Y5m4`4F0t4(5q4V3Z0t4.474_5w3+0t4@5A4~4+5D4|361E2;1t2#2O0r1_2T3M0T2-251B5P1C5N2^4v055V0^2=531*0#1a0^0I3C5B1}0U325=5H3x0I1a220)0p2E0l5`5,1519040w64593l1a211@0%0n6a5e01670q0=3 3k5^3p0O6s6i3k0*0r1a016z6o3M6w326s2q2E0h2T210O2a0f230B1@1%0!6e0f6g0!0F0O0p2X0 0(0{6!2B0T1i0m2G0B2E0*0F6B3:6D6r6s0$210W0Q0;1%6Z1%0r0%5V0v2u2w2y0O6K700O1U0*0)1%74766g6=416@6F7n2A006e6~0f0~762x0;0I0*7k1}7m7o6s0_2A7g6$2*0n0~6)6+6-6/0O0*2b0~0T1Q0I0I6/7A1*7C6s6z013J7n5?3b1a0v3O0T0n0m0p0b3C0O7+150Q1a0R7^7`6k1a0/0E7)6F800h1a0i0Q1p7 5{017|047~4v7_8e0*2e046A4C7*8e88047.0^0P7f0b7f8d658f7}8B6b0#0T1a0e0f0p6h8q868e5.040I3O8F6j8t0T8V3k0Q6q2*8Z4K6d0h6f8N2^8e676n8O7D808R7x8(6?0Z1a000z008`418g020l0)0g8i2?8k8C8X911}9395979d7!8|04000H905%8/1a8;4/7D8?8Q1a8_8j877-5W8x0n8z8-5L9q049s479u9M9a6b0T9k030O0j2z2a131%6K8v1%2,0v0i2E859N7o8@9x5;9z8s898b0)9i7{1a0K98369O6j8m6y7(9p8C8:9*9+9u9A8u7/7;7?6u3M8g0dae3`1a0m0S0S210rai416769a36b8t8a8cau6j6la6a79~3F9=ay99808g9|3haE6C8n8p9taD8P9b9B8w8y8A9:8CaK9^018H1a0Y3n0*9G4f9M9-040n0}a-2K80a58=9Na:9yaI8e8#5~0Q9@aZavaV0n9D9Faq1}a`aRaSaN3:9Q1a9S9U6L1)9Y2z9!0OaXa@1bbf6t9;aa0f7:7=7@az8!1aahbD8)04alan6Ibb1*asbN3x0i9x8+bQ8168bVaw9?bV6l0qaCa7a9axb4a a!8Eb59 aPa2beaSa99!b9aYb-6ba#b:3ka(048K8Mb(bwaU04b+a$b b}8WaGb,9}aJ1a0ya$9c4C068r8C8^9/cdaFaaaW9Eb|9Ha49rc6bg41crclcfcb9`aL2KcD7Bb=b#cBa{a/bx7.bzacbC8.b.04bGcYb6bJamaocPbXbHajc9b!c-ar1ab%a{a:a=a,c+9Ka.a8cTabbBbVagbYakc)bMc;bc1aatc$8WbS042*cg3ha_dbd5c/aHcz6bb$3JcoaT8G1a2E600f1sc0bIcUbAad4I0c5)0n2L2:dJ5O1K5Q2O2R2M0m1#dM0c5P1cdW0_0{0}372#3k0m0r7.0h7w1r0O0J0pb35X1zd)d+1rd.0h0C170)1=1B0m0O0(2E0I1P1:0S0*0=0cdW0Q0T0*0d0S0k1`1r0d3O0V0c7X0c0t0c0(8#0)0Q1u3O170h0V0d1W0v0l030#0n0k0C0I6Z2G0;1r0*1a0?8z6N2x7G7ce30ref1f6e0m780xekevdA0mdK371DdI3k1,1T1V1X5+avdf7ddia^b0bFdm0*eAc+0wc@5$dI3p7F5(5We@1V1.1W2f9bdff50f7fapd9bOdbf95LdH5W3p1r0)6Y9V6+0v6P2E7_fbeJ0k1tfb0O0m1 2z2B29737x7sfB1%8T0hePd/0w8bfN1pfGbKa=dT1$0qd:0p0;6L0n1p0O0o6QfNc)0l6g7Q616#0md;1%0%f~248+eY117c0;7e1%0m0W2bfA0r7q7W2F600n0f7G7T0Q756+gdeRbG1H1C040-e3gh1$g10r0pbm6NfEf{fe5*fJfLfx2A6}fAf`fG7bfYf!2zf$gI7=f{f+11dUf/d;f=dL6IfB7Qf@0lfN0f0Ve%g97F6H6|6~fW1M0%0O0,6Y177dgph4gr0OfP7L1%1@0;0d0O0.0_7fbr2F0(d-g4797e0O6N0S0;7MgqgbgY7810h37KfAg)f 9E6,7fg8fA7ba,0p1$hc6}7u8bgq7Ug38M790h2E0Vgd6QhMh!h!8,gye;040D2z0p7R0VfX6Ug4g|ht2B0I0{gW2zhgg0gq0^0~0Q0i0:0_gs751$0b7Kh+1p0|gdgi7cig2*1J7:i7gI1$0~e)hg0i1phei7i9ibh+0`g9hrhDhi0x1i79ifid1%8;gzd(3Me^fie{802k21235X2p0+0T0f18fAe+eldA2^dLe|a^5%fba:3abV6q7_fr3x8I1l600^bUi|bWc}3tcpdv045:i_5_j30I0v1a0P0P2*2xjhf7bV0i67a,0lcsdpaA1a6;dBc.2mbtdk04jwctbI0V6N0^c+jDchbx0mh^c+6mcC80jo1ajqjsdjf2c!dmjzcI8hcG04j#cRdu6jjT04jVd3f3j38tjGd*btcM1*ccjLc8j^jIj+c76bj.j:j3d4j?akjOjx92b/jEc.jNbtdtk36j8Rjaj3i`bVjejg0P2E2:jlj3bPj3k5a=jWf1cA04jQk2j{158Rdx61i-j~e}dw0n2:f7dcjt3kkAjrj;jZk9j)iZjJa$kXkCi:bEk!ddcuk0jA9IjKaMjSjpkBkZc#kVbIkhjPfu4f4:c.7e0pj10)0Pi8ia2G7zkc9ekekOju040/a6a90+j06ejmj30*9k000:0Qhp9ok/3M67k@cL80lt8}0ulzk~3:lCa$0v0;4AjPlDbuj,culol7lqkxdllslu0:2b0nlJjXkElSkI01lG9l0Ml*kDdqjvlNlP3|5Fl+l^kFlSkjl.8tlWl8lrlA8{8}0rggl)k(lf9j8}l=mekf41lO4s5ulKc=m07Z661a84dGi?1G5NdWdO1I1Kfg1-e`fk6biXjz2ohjeR1n1%i+e-5=i/3U2@5Li?8e0V67020V96m#m%m$0gi{m84afmeA0nfqm-dac,m?7,j/lp8+laiBldmjlicugPk7lhl~kl1a119%mbj(l6m6lZ9Jndm|f0k,afj=m_3xkak=kEl2cLkk3kbi049SfnfA0i0kfNkb5v1}0V8g0/0w00mb0Wl)6X00l=6X3}0q6XnLl%2X00nQnS330AnV0OnXlx0hn!0O00lInT0G0qmv4^fw5*5MdVdXdN0Wh/gChSfZ78gNdJ5 61a=gQ5*f?f^gV1%9W0*f 7424g^g`h*o604n4fMh5o6mEe_1/mHden9h(k|f4f6ngf85=n`dJ0Of%ouiSfhmGnl3`m/fom;f7nt2LfM067:f:g.gp24gjhfi(h97be 717H6%ighyhK6.igmc0T8k1@1r0V040l003O0rfGo8622Io}eCk!1A.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)