0
votes

Comment puis-je insérer des éléments d'une liste dans une autre liste dans le même ordre?

Disons que j'ai une liste de fruits et que je souhaite insérer les éléments de cette liste dans une autre liste. Utilisation de la compréhension de la liste J'aurais un code qui ressemble à ceci: xxx

Ce retour: xxx

Cependant, je veux que les éléments disposés dans le même ordre que la liste d'origine. Mon idée venait de l'annuler comme ceci: xxx

mais qui retourne quelle que soit la raison: xxx

Quelqu'un peut-il m'expliquer Pourquoi utiliser l'index [-1] donne dans cet ordre étrange? Comment pourrais-je atteindre l'ordre d'origine?

EDIT:

J'ai oublié d'ajouter que je recherche une méthode qui insère les éléments de liste au début de la liste, ce qui ajoute donc Les éléments de xxx

dans xxx

doivent entraîner xxx < / p>


0 commentaires

4 Réponses :


1
votes

L'indice d'insertion est l'index que l'élément aura après l'insertion. Ce que vous essayez vraiment, c'est: xxx

qui tourne my_list dans la copie attendue. En utilisant -1 comme indice d'insertion insère avant le dernier élément, qui ne fonctionne pas pour le premier car il n'y a pas encore de dernier élément à précéder, d'où la commande bizarre .

Cela étant dit, vous ne devez vraiment pas utiliser de compréhentions pour des effets secondaires si vous n'utilisez pas la liste résultante. Notez que [my_list.insert (-1, i) pour i in fruit] retourne réellement [aucun, non, aucun, aucun, aucun, non,

Il existe de meilleurs moyens d'atteindre une telle copie peu profonde: xxx

nommer juste quelques-uns.


0 commentaires

1
votes
  1. Si vous souhaitez ajouter un nouvel élément à la fin de la liste, vous pouvez utiliser APPEND code> au lieu de Insérer code>. LI>
  2. La raison pour laquelle vous obtenez la commande "mixte" de votre version avec -1 code> est-ce que l'insertion dans la position -1 CODE> Mettez l'élément dans le "à côté du dernier "Élément à l'intérieur de votre liste. LI>

    Donc, si vous avez la liste ["A", "B"]] code> et vous insérez "C" code> dans la position de -1 code > - Votre nouvelle liste sera ["a", "c", "b"]] code>. p>

    comme pour votre code - vous pouvez utiliser: p>

    my_list = fruit[::]
    


1 commentaires

Grande réponse, merci beaucoup. Malheureusement, j'ai oublié de préciser que j'ai besoin des éléments au début de la liste, pourriez-vous regarder la question mise à jour? Désolé pour les tracas.



1
votes

Utiliser list.index () Il renvoie l'index de l'élément, si vous connaissez l'index des éléments de la liste d'origine, vous pouvez insérer exactement comme la liste d'origine.

['apple', 'orange', 'banana', 'peach']


0 commentaires

1
votes

Il n'est généralement pas recommandé d'utiliser des "effets secondaires" dans une compréhension de la liste ni de les utiliser à la place d'une boucle. Vous pouvez insérer une liste dans une autre liste à l'aide de simples sous-domes, cependant: xxx

sortie: xxx

note: une indice est un Référence à certains éléments de la liste, un seul élément ou une gamme d'éléments. Dans ce cas, nous remplaçons une gamme d'éléments contenant des éléments zéro à partir de la position 0.


2 commentaires

Incroyable, merci. Pouvez-vous clarifier ce que vous entendez par Suscrip? Des souscriptions? Vous recherchez cela montre quelque chose d'autre apparemment, je n'ai jamais vu cela auparavant dans ma courte carrière de Python.


Désolé "Suscriprip" était une typo horrible.