{"id":5851,"date":"2024-08-29T08:04:35","date_gmt":"2024-08-29T08:04:35","guid":{"rendered":"https:\/\/wikiform.fr\/codespace\/scinder-et-joindre-des-chaines-en-python\/"},"modified":"2024-08-29T08:04:38","modified_gmt":"2024-08-29T08:04:38","slug":"scinder-et-joindre-des-chaines-en-python","status":"publish","type":"post","link":"https:\/\/wikiform.fr\/codespace\/scinder-et-joindre-des-chaines-en-python\/","title":{"rendered":"9.6 Scinder et Joindre des Cha\u00eenes en Python"},"content":{"rendered":"\n<p><strong>Scinder et joindre des cha\u00eenes en Python<\/strong> sont des op\u00e9rations de base qui permettent de manipuler les cha\u00eenes de caract\u00e8res avec aisance. Savoir comment scinder une cha\u00eene en plusieurs parties ou joindre plusieurs \u00e9l\u00e9ments en une seule cha\u00eene est essentiel pour l&rsquo;analyse de texte, le traitement des fichiers, et bien d&rsquo;autres t\u00e2ches de programmation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction \u00e0 la <strong>scission et la jonction des cha\u00eenes en Python<\/strong><\/h2>\n\n\n\n<div id=\"videoContainer\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;\">\n  <iframe src=\"https:\/\/player.vimeo.com\/video\/583416052?dnt=1&#038;fullscreen=0&#038;pip=0\" loading=\"lazy\" loading=\"lazy\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" frameborder=\"0\" allow=\"autoplay\" allowfullscreen id=\"vimeoPlayer\"><\/iframe>\n  \n  <!-- Popup Desktop -->\n  <div id=\"popupContainer\" class=\"desktop-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90%; max-width: 400px; padding: 20px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <h2 style=\"color: #333; font-size: 1.5em; margin: 10px 0;\" id=\"profitez-de-loffre-spciale-\">Profitez de l\u2019offre sp\u00e9ciale !<\/h2>\n    <p style=\"color: #e74c3c; font-size: 1.2em; margin: 10px 0;\">Obtenez notre cours pour seulement <strong id=\"price\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: block; padding: 10px 20px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 1em; margin: 20px auto;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 10px 20px; font-size: 1em;\">Fermer<\/button>\n  <\/div>\n\n  <!-- Popup Mobile -->\n  <div id=\"popupContainerMobile\" class=\"mobile-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; max-width: 300px; padding: 15px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <p style=\"color: #e74c3c; font-size: 1em; margin: 5px 0;\">Cours sp\u00e9cial \u00e0 <strong id=\"priceMobile\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: inline-block; padding: 8px 15px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 0.9em;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 5px 10px; font-size: 0.9em;\">Fermer<\/button>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/player.vimeo.com\/api\/player.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    var iframe = document.getElementById('vimeoPlayer');\n    var player = new Vimeo.Player(iframe);\n    var isPopupDisplayed = false;\n\n    player.on('play', function() {\n        if (!isPopupDisplayed) {\n            player.on('timeupdate', function(data) {\n                if (data.seconds >= 120 && !isPopupDisplayed) { \/\/ 120 seconds = 2 minutes\n                    \/\/ Pause the video and display the popup\n                    player.pause().then(function() {\n                        if (window.innerWidth > 768) {\n                            document.querySelector('.desktop-popup').style.display = 'block';\n                        } else {\n                            document.querySelector('.mobile-popup').style.display = 'block';\n                        }\n                        fetchPriceAndUpdatePopup();\n                        isPopupDisplayed = true;\n                    });\n                }\n            });\n        }\n    });\n\n    function fetchPriceAndUpdatePopup() {\n        fetch('https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144')\n            .then(response => response.text())\n            .then(html => {\n                var parser = new DOMParser();\n                var fetchedDoc = parser.parseFromString(html, 'text\/html');\n                var priceElement = fetchedDoc.querySelector('.ammount .fw-500');\n                var originalPriceElement = fetchedDoc.querySelector('.ammount del');\n                var price = priceElement ? priceElement.textContent.trim() : '29.5\u20ac';\n                var originalPrice = originalPriceElement ? originalPriceElement.textContent.trim() : '59\u20ac';\n\n                document.getElementById('price').textContent = price;\n                document.getElementById('priceMobile').textContent = price;\n                document.querySelector('.desktop-popup del').textContent = originalPrice;\n                document.querySelector('.mobile-popup del').textContent = originalPrice;\n            })\n            .catch(error => console.error('Error fetching the price:', error));\n    }\n\n    function closePopup() {\n        document.querySelector('.desktop-popup').style.display = 'none';\n        document.querySelector('.mobile-popup').style.display = 'none';\n        player.play(); \/\/ Allows resuming the video only after closing the popup\n    }\n});\n<\/script>\n\n\n\n<p>En Python, les cha\u00eenes de caract\u00e8res sont des s\u00e9quences immuables de caract\u00e8res. Vous pouvez les scinder en utilisant la m\u00e9thode <code>split()<\/code> et les joindre en utilisant la m\u00e9thode <code>join()<\/code>. Plongeons dans ces concepts pour mieux comprendre leur utilisation et leur potentiel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Scinder une cha\u00eene en Python<\/h3>\n\n\n\n<p>La m\u00e9thode <code>split()<\/code> de Python permet de diviser une cha\u00eene de caract\u00e8res en une liste de sous-cha\u00eenes en fonction d&rsquo;un s\u00e9parateur sp\u00e9cifi\u00e9. Si aucun s\u00e9parateur n&rsquo;est sp\u00e9cifi\u00e9, l&rsquo;espace sera utilis\u00e9 par d\u00e9faut. Voici un exemple basique :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>string = \"Le Python est g\u00e9nial\"\nwords = string.split()\nprint(words)\n# Sortie : ['Le', 'Python', 'est', 'g\u00e9nial']\n<\/code><\/pre>\n\n\n\n<p>Vous pouvez \u00e9galement scinder une cha\u00eene en utilisant un autre s\u00e9parateur, comme une virgule :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>string = \"Nom,Pr\u00e9nom,\u00c2ge\"\nwords = string.split(',')\nprint(words)\n# Sortie : ['Nom', 'Pr\u00e9nom', '\u00c2ge']\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Limitez le nombre de scissions<\/h3>\n\n\n\n<p>Vous pouvez \u00e9galement limiter le nombre de scissions en passant un second argument \u00e0 la m\u00e9thode <code>split()<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>string = \"apple,banana,cherry,dates\"\nfruits = string.split(',', 2)\nprint(fruits)\n# Sortie : ['apple', 'banana', 'cherry,dates']\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Joindre des \u00e9l\u00e9ments en une cha\u00eene<\/h3>\n\n\n\n<p>La m\u00e9thode <code>join()<\/code> en Python est utilis\u00e9e pour joindre les \u00e9l\u00e9ments d&rsquo;une s\u00e9quence (comme une liste ou un tuple) en une seule cha\u00eene de caract\u00e8res, avec un s\u00e9parateur sp\u00e9cifi\u00e9. Voici un exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>words = ['Le', 'Python', 'est', 'g\u00e9nial']\nsentence = ' '.join(words)\nprint(sentence)\n# Sortie : 'Le Python est g\u00e9nial'\n<\/code><\/pre>\n\n\n\n<p>Vous pouvez utiliser d&rsquo;autres s\u00e9parateurs selon les besoins :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>words = ['Nom', 'Pr\u00e9nom', '\u00c2ge']\ncsv_format = ','.join(words)\nprint(csv_format)\n# Sortie : 'Nom,Pr\u00e9nom,\u00c2ge'\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Combiner split() et join() pour transformer les cha\u00eenes<\/h3>\n\n\n\n<p>Une application courante est de combiner <code>split()<\/code> et <code>join()<\/code> pour transformer les cha\u00eenes. Par exemple, vous pouvez convertir une cha\u00eene de caract\u00e8res en liste, manipuler cette liste, puis la reconvertir en cha\u00eene :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>string = \"Bonjour tout le monde\"\nwords = string.split()\n# Manipuler la liste (par exemple, inversion des mots)\nwords.reverse()\nnew_string = ' '.join(words)\nprint(new_string)\n# Sortie : 'monde le tout Bonjour'\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Scindages multiples et nettoyages de texte<\/h3>\n\n\n\n<p>Vous pourriez souvent avoir besoin de scinder des cha\u00eenes sur plusieurs s\u00e9parateurs ou de nettoyer le texte avant ou apr\u00e8s la scission. Utiliser des expressions r\u00e9guli\u00e8res en combinaison avec <code>re.split<\/code> peut \u00eatre tr\u00e8s utile :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import re\n\nstring = \"one;two,three four\"\nwords = re.split(r'[;,\\s]', string)\n# Supprimez les cha\u00eenes vides\nwords = [word for word in words if word]\nprint(words)\n# Sortie : ['one', 'two', 'three', 'four']\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Exemples appliqu\u00e9s de scission et de jonction<\/h3>\n\n\n\n<p>Pour approfondir notre compr\u00e9hension, voici quelques exemples pratiques montrant comment utiliser la scission et la jonction des cha\u00eenes dans des contextes r\u00e9els.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Conversion d&rsquo;un fichier CSV en liste de dictionnaires<\/h4>\n\n\n\n<p>Souvent, nous avons besoin de lire des fichiers CSV pour les traiter. Utilisons <code>split()<\/code> et <code>join()<\/code> pour transformer un fichier CSV en une liste de dictionnaires :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>csv_data = \"\"\"name,age,city\nAlice,30,New York\nBob,25,Los Angeles\nCharlie,35,Chicago\"\"\"\n\nlines = csv_data.split('\\n')\nheaders = lines[0].split(',')\n\ndata = []\nfor line in lines[1:]:\n    values = line.split(',')\n    entry = dict(zip(headers, values))\n    data.append(entry)\n\nprint(data)\n# Sortie :\n# [{'name': 'Alice', 'age': '30', 'city': 'New York'}, {'name': 'Bob', 'age': '25', 'city': 'Los Angeles'}, {'name': 'Charlie', 'age': '35', 'city': 'Chicago'}]\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Nettoyage et formatage des textes<\/h4>\n\n\n\n<p>Supposons que vous ayez une liste de descriptions de produits et que vous vouliez formater ces descriptions en supprimant les espaces suppl\u00e9mentaires et en rempla\u00e7ant les s\u00e9parateurs incoh\u00e9rents :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import re\n\ndescriptions = [\n    \"Produit1 - Excellente qualit\u00e9;prix abordable\",\n    \"Produit2- D\u00e9lais de livraison rapide, service client excellent\",\n    \"Produit3 -Encart publicitaire, affiche\"\n]\n\ncleaned_descriptions = []\nfor description in descriptions:\n    parts = re.split(r'[;, -]', description)\n    cleaned_parts = [part.strip() for part in parts if part.strip()]\n    cleaned_description = ' | '.join(cleaned_parts)\n    cleaned_descriptions.append(cleaned_description)\n\nfor desc in cleaned_descriptions:\n    print(desc)\n\n# Sortie :\n# Produit1 | Excellente qualit\u00e9 | prix abordable\n# Produit2 | D\u00e9lais de livraison rapide | service client excellent\n# Produit3 | Encart publicitaire | affiche\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Construction de chemins de fichiers<\/h4>\n\n\n\n<p>Lorsque vous travaillez avec des chemins de fichiers, il est souvent n\u00e9cessaire de les construire \u00e0 partir de divers composants. Voici un exemple de construction de chemins de fichiers \u00e0 l&rsquo;aide de <code>join()<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import os\n\ndirectories = [\"home\", \"user\", \"documents\"]\nfilename = \"example.txt\"\nfile_path = os.path.join(*directories, filename)\n\nprint(file_path)\n# Sortie : 'home\/user\/documents\/example.txt'\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Manipulation de cha\u00eenes avec diff\u00e9rentes m\u00e9thodes<\/h4>\n\n\n\n<p>En combinant des fonctions de diff\u00e9rentes biblioth\u00e8ques, vous pouvez facilement manipuler les cha\u00eenes de caract\u00e8res. Par exemple, consid\u00e9rer un fichier dans lequel les cha\u00eenes sont scind\u00e9es de mani\u00e8re complexe ou n\u00e9cessitent plusieurs transformations :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import re\n\ndata = \"\"\"name-age-city:\nAlice-30-New York\nBob-25-Los Angeles\"\"\"\n\nrecords = data.split(':')\nheaders = re.split(r'[-]', records[0].strip())\n\ndata_list = []\nfor record in records[1:]:\n    values = re.split(r'[-]', record.strip())\n    entry = dict(zip(headers, values))\n    data_list.append(entry)\n\nprint(data_list)\n# Sortie :\n# [{'name': 'Alice', 'age': '30', 'city': 'New York'}, {'name': 'Bob', 'age': '25', 'city': 'Los Angeles'}]\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-mac-2024-guide-complet\" target=\"_blank\" rel=\"noopener\">Installer Python sur Mac<\/a> et Utiliser les Cha\u00eenes<\/h4>\n\n\n\n<p>Commencer avec Python sur un nouvel environnement comme Mac peut \u00eatre d\u00e9licat. Vous pouvez suivre un <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-linux-ubuntu-etape-par-etape\" target=\"_blank\" rel=\"noopener\">guide complet pour installer Python sur Ubuntu<\/a>. Une fois fini, vous pouvez appliquer des op\u00e9rations de scission et de jonction pour manipuler des cha\u00eenes efficacement.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Premiers Programmes Python<\/h4>\n\n\n\n<p>Pour les d\u00e9butants, d\u00e9buter avec un <a href=\"https:\/\/wikiform.fr\/codespace\/premier-programme-python-hello-world\" target=\"_blank\" rel=\"noopener\">premier programme Python Hello World<\/a> est id\u00e9al avant d&rsquo;explorer plus loin des concepts comme les scissions et jonctions de cha\u00eenes.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Comprendre les Variables en Python<\/h4>\n\n\n\n<p>Avant d&rsquo;entrer dans les d\u00e9tails techniques de la manipulation des cha\u00eenes, il est crucial de <a href=\"https:\/\/wikiform.fr\/codespace\/comprendre-les-variables-en-python\" target=\"_blank\" rel=\"noopener\">comprendre les variables en Python<\/a>. Cela vous aidera \u00e0 mieux saisir comment les cha\u00eenes de caract\u00e8res peuvent \u00eatre int\u00e9gr\u00e9es dans vos programmes.<\/","protected":false},"excerpt":{"rendered":"<p>Scinder et joindre des cha\u00eenes en Python sont des op\u00e9rations de base qui permettent de manipuler les cha\u00eenes de caract\u00e8res avec aisance. Savoir comment scinder&#8230;<\/p>\n","protected":false},"author":4,"featured_media":2955,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[18],"class_list":["post-5851","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-tutoriels"],"acf":[],"_titre_de_la_formation":null,"_description_":null,"_objectifs_pedagogiques":null,"_programme_":null,"_url_de_limage":null,"_materiel_necessaire":null,"_modalites_devaluation_des_acquis":null,"_moyens_pedagogiques_et_techniques":null,"_accessibilite_":null,"_formateur_":null,"menu_order":0,"_links":{"self":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/comments?post=5851"}],"version-history":[{"count":1,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5851\/revisions"}],"predecessor-version":[{"id":5852,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5851\/revisions\/5852"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media\/2955"}],"wp:attachment":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media?parent=5851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/categories?post=5851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/tags?post=5851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}