0
votes

Y a-t-il une autre façon d'ajouter un élément dans une liste et quand appelé à nouveau la valeur changera?

essentiellement, je veux ajouter un élément dans i th dans la chaîne. Je veux savoir comment corriger ce code. XXX

Je m'attendais à [1,2,3,7,4,5,6,7] mais a obtenu [1,2,3,4 , 5,6,7] P.s. Je sais que la liste n'est pas liée, mais je veux savoir comment muter la liste2 sans utiliser des fonctions intégrées. Merci pour les suggestions.


5 commentaires

Vous ne modifiez jamais la liste 2, vous ne réaffectaez qu'une nouvelle liste à la variable de la liste dans votre portée locale. Essayez également d'éviter d'utiliser des mots-clés Python pour les noms de variables


En outre, la liste a déjà une méthode d'insertion, alors pourquoi ne pas simplement faire list2.insert (3, 7)


@Chrisdoyle Désolé, c'était une question qui n'autorise aucune fonction intégrée à être utilisée.


moi-même et d'autres ont fourni des moyens de le faire sans utiliser une fonction intégrée


@Chrisdoyle Désolé je clarifiais simplement la question que vous avez posée. Je voulais essayer de tout mettre dans la fonction elle-même mais je suppose que le seul moyen est de mettre la liste 2 = insert (liste2,3,7). Merci pour votre suggestion!


3 Réponses :


0
votes

Vous ne modifiez jamais list2 Vous allez plutôt attribuer une nouvelle liste à la liste LOCALALSCOPE LIST VARIABLE. Ainsi, lorsque la fonction est d'abord appelée list2 et la liste localiscope pointe vers le même objet en mémoire.

Vous créez ensuite une nouvelle liste et pointez sur la liste LOCALALSCOPE à la nouvelle adresse mémoire de la nouvelle liste que vous avez construite. Alors maintenant, list2 et list ne pointe pas sur les mêmes objets en mémoire. C'est pourquoi list2 ne change pas.

Les listes Python ont déjà une méthode d'insertion afin que vous puissiez simplement faire cela comme xxx

Alternativement si vous aviez une raison écrasante de faire cela vous-même dans le style que vous avez écrit, vous devez renvoyer la nouvelle liste et l'attribuer à list2 xxx


0 commentaires

0
votes

Vous devez retourner la liste et mettre à jour: xxx

meilleure utilisation méthode intégrée insérer xxx


0 commentaires

0
votes

Parce que vous avez la mission list = code> dans votre fonction, la liste code> sera considérée comme une variable locale dans cette fonction, il est donc sans rapport avec le paramètre transmis à la fonction .

Vous avez quelques choix: p>

renvoie la nouvelle liste: p> xxx pré>

et attribuer la valeur renvoyée: p>

list2.insert(3, 7)


0 commentaires