Maison >développement back-end >Tutoriel Python >Notes/astuces/leçons/nuances Python

Notes/astuces/leçons/nuances Python

WBOY
WBOYoriginal
2024-09-03 11:00:36707parcourir

Python notes/tricks/lessons/nuances

J'ai fait un article sur des astuces C++ et je voulais écrire sur beaucoup plus d'astuces que je connais, puisque la plupart d'entre elles sont en Python et JS même si j'ai codé en C++ un beaucoup plus mais de toute façon les voici, je vais commencer par des choses triviales sur la syntaxe de base de Python mais il y a certaines choses qui ne sont pas connues des débutants, que j'ai marquées d'une étoile ⭐️ :

1. Listes

  • Une structure de données de collection ordonnée d'éléments
  • Peut avoir plusieurs types
  • aa = ["pomme", 'd', 3, 9.3]

Initialisation :

  1. a = [1, 2]
  2. a = liste()
  3. a = liste([2, 3])
  4. [0]*5
  5. concat_list = liste1 + liste2

Accéder aux éléments ⭐️

  • 0...n-1 et -n...-1

Fonctions

  • len(list1)
  • a.append(value)
  • a.insert(index, value) : insère la valeur à l'index et pousse tout vers la droite
  • a.pop() : renvoie la valeur finale et la supprime
  • a.remove(value) : si la valeur n'est pas présente, vous obtiendrez une ValueError
  • a.clear()
  • a.reverse() : inverse sur place
  • a.sort() : modifie l'original
  • b = trié(a) : ne modifie pas l'original

Trancher ⭐️

Un moyen simple d'accéder aux sous-tableaux d'une liste

  • slicedList = a[1:5] : commence à l'index 1 et s'arrête à l'index 5, l'index 5 est exclu
  • slicedList = a[:3] : de 0 ... 2
  • slicedList = a[1:3] : de 1 à 2
  • slicedList = a[:] : dupliquez la liste entière
  • slicedList = myList[::2] : index d'étape, un élément sur deux, commencez par le premier, en gros i=0;i
  • slicedList = myList[::-1] : belle façon d'inverser une liste

Copier une liste

1. Copie superficielle

  • a = [1, 2, 3]
  • b=a

Modifier l'un modifie également l'autre puisque les deux sont les mêmes allocations de mémoire

2. Copie approfondie ⭐️

3 façons :

  1. b = a.copie()
  2. b = liste(a)
  3. b = a[:]

Compréhension de la liste

Je vais commencer par quelques compréhensions de base de listes, mais elles deviendront vite moins triviales.

  • valeurs = [x+1 pour x dans la plage (10)] -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

- valeurs = [x pour x dans la plage (51) si x % 2 == 0]

values = [word for word in values if len(word) > 1 and word[0] == 'a' and word[-1] == 'y']
# OR, a nicer way is ⭐️
values = [
    string
    for string in values
    if len(string) > 1
    if string[0] == 'a'
    if string[-1] == 'y'
]

Compréhension des listes imbriquées ⭐️

Aplatir une liste de listes, ou une matrice 2D
Compréhension de listes imbriquées : Aplatir une matrice (une liste de listes) ⭐️

Exemple : matrice = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

values = [
    number for row in matrix for number in row
]
# first for loop then the next for loop is inside the first and so on
  • Autres compréhensions de listes :
values = [
    "Even" if x % 2 == 0 
    else "Odd" 
    for x in range(10)
]
  • Cette syntaxe ->
    "Même" si x % 2 == 0 sinon "Odd" est valide à beaucoup d'endroits en python, vous pouvez aussi le mettre dans des variables, c'est essentiellement un opérateur ternaire mais plus verbeux

  • ⭐️ Pour comprendre toute compréhension de liste, regardez toujours à gauche et à droite de l'expression, toutes les boucles imbriquées vont de gauche à droite, lorsque le if else est à gauche de la boucle for, nous vérifions quelle valeur voulons-nous insérer en fonction de la condition if else, alors que lorsque la boucle for est à droite, nous essayons de filtrer à partir de la liste

  • Par exemple pour créer une liste 5x5x5 : ⭐️

values = [[[num+1 for num in range(5)] for _ in range(5)] for _ in range(5)]

⭐️ Recherchez la boucle for la plus extérieure, tout ce qui se trouve à sa gauche sera ajouté au tableau valeurs[], et la signification de cette syntaxe : for _ in range(5) est que je veux faire tout ce qui se passe la gauche de cette boucle for 5 fois (car je me fiche de la valeur de la variable itérateur à chaque itération)

  • Fonctions en compréhensions : valeurs = [x**2 pour x en valeurs si valide (x)]

Compréhension du dictionnaire

Si on a des paires = [("a", 1), ("b", 2)] : une liste de paires ou de tuples

-> my_dict = {k:v for k, v in pairs} : décompression de la valeur, pour que cela fonctionne, chaque "paire" par paire doit avoir exactement 2 entités

Définir la compréhension

Soit nombres = [1, 2, 3, 1, 3, 2, 4, 2, 1, 3]

unique_nums = {x for x in nums} : python saura que cela devrait être un ensemble car vous n'avez aucune clé

J'écrirai ceci une fois que j'aurai un peu de temps, mais vous pouvez toujours les consulter ici : AdvancedPythonConcepts c'est mon dépôt git où j'ai documenté les concepts python lorsque je les ai appris pour la première fois. J'écrirai cet article basé sur ce dépôt une fois que j'aurai le temps...

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn