Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PYTHON] Liste de chiffres croissants

Sujet résolu
    22 janvier 2020 à 10:27:05

    Bonjour, je bosse sur un projet de bac en ce moment et j'aimerai savoir comment trier ma liste de façon croissante.

    Exemple:

    liste = ['6', '1', '5', '18']

    Je cherche donc à trier la liste comme cela:

    liste = ['1', '5', '6', '18']

    Problème que j'ai rencontré avec .sorted qui lui range la liste dans l'ordre alphabétique càd:

    liste = ['1', '18', '5', '6']

    Merci à tous ceux qui m'aideront à trouver la solution rapidement.

    A très bientôt, je l'espère

    • Partager sur Facebook
    • Partager sur Twitter

    Développeur Web & Skript

      22 janvier 2020 à 12:13:18

      Comment est créée cette liste et comment sera-t-elle utilisée par la suite ?

      Là tu as une liste dont tous les éléments sont des chaîne de caractères représentant des nombres, est-ce qu'une liste de nombres ne serait pas plus pertinent ?

      Sinon, la fonction sorted() et la méthode list.sort() ont un argument key. La documentation explique très bien comment l'utiliser.

      • Partager sur Facebook
      • Partager sur Twitter
        22 janvier 2020 à 12:33:17

        Vous avez récupéré une liste de chaînes de caractères représentant des nombres mais il est assez probable que c'est la valeur de ces nombres qui importe (la preuve, vous en avez besoin pour les trier) donc dans votre projet il est peut-être plus approprié de convertir vos chaînes en vrais nombres :

        liste = ['6', '1', '5', '18']
        liste=[int(z) for z in liste]
        print(sorted(liste))
        [1, 5, 6, 18]
        

        Attention, si vous chaînes contiennent des flottants, il ne faut pas utiliser int mais float. A vous de voir si vous avez besoin de la fonction sorted ou de la méthode sort.

        Après, si vous voulez absolument garder votre liste de chaînes, il faut utiliser ce qui est expliqué dans une précédente réponse.


        • Partager sur Facebook
        • Partager sur Twitter
          22 janvier 2020 à 13:31:14

          Si on ne veut pas convertir en int il y a aussi cette solution :

          liste = ['6', '1', '5', '18']
          print(sorted(liste, key=int))
          ['1', '5', '6', '18']




          • Partager sur Facebook
          • Partager sur Twitter
            24 janvier 2020 à 18:44:20

            Merci beaucoup, problème résolu grâce à vous
            • Partager sur Facebook
            • Partager sur Twitter

            Développeur Web & Skript

            [PYTHON] Liste de chiffres croissants

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown