essentiellement, je veux ajouter un élément dans i th dans la chaîne. Je veux savoir comment corriger ce code. 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. P> p>
3 Réponses :
Vous ne modifiez jamais Vous créez ensuite une nouvelle liste et pointez sur la liste LOCALALSCOPE CODE> CODE> à la nouvelle adresse mémoire de la nouvelle liste que vous avez construite. Alors maintenant, Les listes Python ont déjà une méthode d'insertion afin que vous puissiez simplement faire cela comme p> 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 code> Vous allez plutôt attribuer une nouvelle liste à la liste LOCALALSCOPE
LIST CODE> VARIABLE. Ainsi, lorsque la fonction est d'abord appelée
list2 code> et la liste localiscope
code> pointe vers le même objet en mémoire.
list2 code> et
list code> ne pointe pas sur les mêmes objets en mémoire. C'est pourquoi
list2 code> ne change pas. p>
list2 code> p>
Vous devez retourner la liste et mettre à jour: meilleure utilisation méthode intégrée insérer code> p>
Parce que vous avez la mission Vous avez quelques choix: p> renvoie la nouvelle liste: p> et attribuer la valeur renvoyée: p> 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 .
list2.insert(3, 7)
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) code>
@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!