Partage
  • Partager sur Facebook
  • Partager sur Twitter

Utiliser if ( in ) sur une sous partie d'une list

    14 novembre 2017 à 14:24:47

    Bonjour

    Je travaille sur un projet en python et j'ai besoin de tester si une liste existe déjà dans une autre ... classique !

    Sauf que ma liste à tester contient 16 éléments : [12, 5, 8, 7, 0 ..., 14, 15] (par exemple),
    la deuxième liste est une liste de listes avec chacune 16 éléments ou plus (une suite de mouvements est ajoutée) : [ [1, 3, 6,  ..., 14, 0, "h", "b", "d", ...]  ,  [12, 5, 8, 7, 0 ..., 14, 15, "b", "b", "d", "h"]  ,  [4, 15, 6, 7, 0, 3..., 8, 9, "h", "g", "g", ...] , ... ]

    j'aimerai savoir si ma liste de 16 éléments est déjà le début d'une des listes enregistrées !
    une syntaxe pour linux genre : if (listA in listB[*][0:16]) ... j'espère être claire

    A savoir que ma liste principale est super grande, donc le coup du for marcherai mais c'est super long !

    Merci :)

    • Partager sur Facebook
    • Partager sur Twitter
      14 novembre 2017 à 16:07:32

      Bonjour,

      Tu peux en effet calculer toutes les sous-listes de 16 éléments :

      [l[:16] for l in lists]
      

      Et ensuite effectuer une opération in sur cet ensemble. Mais ce n'est pas dit que ce soit la meilleure solution. Tu pourrais donner plus de contexte ?

      -
      Edité par entwanne 14 novembre 2017 à 16:08:10

      • Partager sur Facebook
      • Partager sur Twitter
        14 novembre 2017 à 16:51:58

        Bonjour

        Merci pour cette response, j'essaye ca rapidement !

        Le contexte est que je viens de finir la résolution d'un jeu de taquin mais suivant la complexité de la grille, le programme met plus ou moins longtemps 

        J'aimerai enviter de faire deux fois la même chose et vérifier qu'une grille n'a pas déjà était faite. Le problème est que j'ajoute aussi les mouvement à la suite de cette liste pour avoir mon historique. D'où le souhait de vouloir uniquement les 16 premiers éléments de chaque liste (puisque les mouvements dans ce cas ne sont pas importants)

        • Partager sur Facebook
        • Partager sur Twitter

        Utiliser if ( in ) sur une sous partie d'une list

        × 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