Comment faire pour supprimer le dernier élément d'une tranche?
J'ai vu des gens dire il suffit de créer une nouvelle tranche en ajoutant l'ancien
*slc = append(*slc[:item], *slc[item+1:]...)
mais que faire si vous voulez supprimer le dernier élément dans la tranche?
Si vous essayez de remplacer i
(le dernier élément) avec i+1
, il renvoie une erreur de limites puisqu'il n'est pas i+1
.
OriginalL'auteur sourcey | 2014-10-03
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
len()
pour trouver la longueur et re-tranche à l'aide de l'indice du dernier élément:Cliquez ici pour la voir dans la cour de récréation
len(slice) == 0
:panic: runtime error: slice bounds out of range
....eh bien, oui. Ce n'était pas une partie de la question.. mais je vais mettre à jour ma réponse à vous aider.
Aussi, n :=, tranche est déjà défini. 🙂
En effet à la fois. Fixe.
OriginalL'auteur Simon Whitehead
TL;DR:
Par la voie, ce sera un échec si "myslice" est nulle de taille moyenne.
Plus réponse:
Ceci ne fonctionnera pas si "myslice" est nulle de taille moyenne.
Tranches sont des structures de données point à un sous-jacent de tableau et des opérations comme le découpage de la tranche de l'utilisation de la même matrice.
Qui signifie que si vous la coupez une tranche, la nouvelle tranche sera toujours pointer vers les mêmes données que l'original de la tranche.
En procédant comme ci-dessus, le dernier élément sera toujours dans le tableau, mais vous ne serez pas en mesure de référencer plus.
Modifier
De précisions:
Si vous reslice de la tranche de sa longueur d'origine, vous serez en mesure de référence le dernier objet
/Modifier
Si vous avez vraiment une grosse tranche et que vous souhaitez également tailler les sous-jacents au tableau pour économiser de la mémoire, tu veux peut-être utiliser la fonction "copier" pour créer une nouvelle tranche avec un plus petit sous-jacente de tableau et de laisser l'ancien grande tranche d'obtenir des ordures collectées.
Ok 🙂 de toute façon, vos points sont valables, merci pour le tuyau 🙂
Pas sûr pourquoi l'-1 soit.. donc avoir un autre upvote. Votre réponse est en fait bien plus complet que le mien.
merci man 🙂
OriginalL'auteur DallaRosa