À propos de Python sort () et reverse ()

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.

La valeur de retour est None

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.

Lire la documentation Python

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.

Résumé

Si vous n'êtes pas sûr de son comportement, lisez la documentation.

Recommended Posts

À propos de Python sort () et reverse ()
À propos des objets et des classes Python
À propos des variables et des objets Python
À propos de Python, len () et randint ()
À propos de la date et du fuseau horaire Python
À propos de Python et des expressions régulières
Python # À propos de la référence et de la copie
[Python] Trier
Python #sort
À propos de l'installation des séries Pwntools et Python2
À propos de Python dict et des fonctions triées
À propos de Python et Cython dtype
À propos de Python Pickle (cPickle) et Marshal
[Python] À propos des classes Executor et Future
À propos de Python, à partir et à l'importation, comme
Inverser le pseudonyme plat et le katakana en Python2.7
À propos des tranches Python
À propos de la notation d'inclusion de python
À propos de Python tqdm.
À propos du rendement Python
À propos de python, classe
À propos de l'héritage Python
À propos de python, range ()
À propos de Python Decorator
Une histoire sur Python pop and append
À propos de la référence Python
À propos des décorateurs Python
[Python] À propos du multi-processus
Parler d'anciennes et de nouvelles classes en Python
Parler des attributs de classe Python et des métaclasses
Pensez aux recherches de priorité de profondeur et de priorité de largeur en Python
À propos de la différence entre "==" et "is" en python
Un mémo que j'ai écrit un tri de fusion en Python
Une histoire sur la modification de Python et l'ajout de fonctions
[Python] En savoir plus sur la programmation asynchrone et les boucles d'événements
À propos des copies superficielles et profondes de Python / Ruby
Python> Trier par nombre et trier par alphabet> Utiliser trié ()
À propos de Python for loop
À propos des arguments de fonction (python)
Astuces Python et Numpy
[Python] pip et roue
Itérateur et générateur Python
Tri à bulles en Python
Tri par classe Python
Paquets et modules Python
Intégration Vue-Cli et Python
[Python] Mémo sur les fonctions
Ruby, Python et carte
Résumé sur Python3 + OpenCV3
[Mémo] Tri de liste Python3
Python et Ruby se séparent
À propos de l'environnement de développement Python
Python: à propos des arguments de fonction
Python, à propos de la gestion des exceptions
Feuille de triche de tri Python
Tri personnalisé en Python3
À propos de Python Pyramid Traversal