La liste de Python a des fonctions qui changent l'ordre, telles que sort () et reverse (), mais si vous voulez les utiliser, vous devez comprendre les spécifications et les utiliser.
J'étais accro aux ennuis l'autre jour, alors je vais le laisser.
Par exemple, comme toute autre fonction
print([1,3,8,7,4].sort())
Même si j'écris, ** Aucun n'est affiché **.
De la même manière
print([1,3,8,7,4].reverse())
Mais le résultat est le même.
sort()
Quand j'ai lu la documentation Python pour le moment, j'ai trouvé quelque chose comme ça.
Cette méthode modifie la séquence sur place pour économiser de l'espace lors du tri de grandes séquences. Il ne renvoie pas de séquence triée pour informer l'utilisateur que cette opération est effectuée comme un effet secondaire. http://docs.python.jp/3/library/stdtypes.html#list.sort
Cela signifie que sort () ** n'effectue que des modifications destructives et ne renvoie pas une liste triée **.
Continuer vers le document
Utilisez sorted () pour demander explicitement une nouvelle instance de liste
Il y a.
En d'autres termes
l = [1,3,8,7,4]
l.sort()
print(l)
Ou écrire
print(sorted([1,3,8,7,4]))
Doit être écrit
reverse() reverse () aussi, quand je lis le document,
La méthode reverse () modifie la séquence en place pour économiser de l'espace lors de l'inversion de grandes séquences. Cela ne retourne pas une séquence inversée pour informer l'utilisateur que cette opération est effectuée comme un effet secondaire http://docs.python.jp/3/library/stdtypes.html#mutable-sequence-types
Il y a. En d'autres termes, comme sort (), vous devez le mettre une fois dans une variable, effectuer un changement destructeur, puis l'imprimer.
Ensuite, une question se pose.
Y a-t-il un reverse () qui retourne une liste inversée? Quand.
En conclusion, la fonction reverse () elle-même existe.
Cependant, contrairement à sorted (), qui renvoie une liste triée, reverse () renvoie un ** itérateur ** dans l'ordre inverse de la liste donnée.
Par conséquent, il est nécessaire de générer une liste à partir de l'itérateur.
print([i for i in reversed([1,3,8,7,4])])
Et vous devez.
Mais si vous ne faites que retourner la liste, c'est plus facile à écrire.
print([1,3,8,7,4][::-1])
[:: -1] de [1,3,8,7,4] [:: -1] est appelé une tranche, et j'omettrai les détails, mais c'est une fonction qui peut extraire une partie de la liste et créer une nouvelle liste. est.
Vous pouvez spécifier trois valeurs séparées par deux-points (cela peut être omis), la première est le point où l'extraction commence, la seconde est le point où l'extraction se termine et la troisième est l'intervalle d'extraction.
Cette fois, l'intervalle est de -1, donc il est incrémenté de 1 pour extraire (= extraire tout), et comme il a un moins, l'extraction commence à partir du bas de la liste.
Vous obtiendrez donc une liste dans l'ordre inverse.
Pour inverser la liste,
Je veux économiser de la mémoire → inverser ()
Je veux ajouter un peu de traitement à chaque valeur en créant une liste inversée (double-la, etc.) → inversée ()
Je veux le retourner pour le moment → Slice
Je pense que vous devriez l'utiliser correctement.
Si vous n'êtes pas sûr de son comportement, lisez la documentation.
Recommended Posts