[Notes d'étude Python] 08 liste le résumé le plus complet

Cette série de notes pour apprendre Python par vous-même, s'il y a des erreurs, veuillez me corriger

Caractéristiques de la liste

La séquence est une méthode de stockage de données utilisée pour stocker une série de données. En mémoire, une séquence est un bloc utilisé pour stocker plusieurs valeurscontinuEspace mémoire. Par exemple, un total de séquence entière [10,20,30,40] peut être schématiquement représenté comme suit:
Insérez la description de l'image ici

Puisque tout dans python3 est un objet, il est en fait stocké de la manière suivante en mémoire:

a = [10,20,30,40]
Insérez la description de l'image ici

Sur la figure, on peut voir que l'adresse de l'objet entier est stockée dans la séquence, pas la valeur de l'objet entier. Les structures de séquence couramment utilisées en python sont: liste de chaînes méta collection de dictionnaires ancêtres.

Introduction à la liste

Liste: utilisé pour stocker n'importe quel nombre et type de collecte de données

La liste a une séquence de variables intégrée, qui est un espace mémoire continu ordonné contenant plusieurs éléments. Format de syntaxe standard pour la définition de liste:

a = [10,20,30,40]

Parmi eux, 10 20 30 40 sont appelés: éléments de liste a

Les éléments de la liste peuvent être différents et de tout type. tel que:

a = [10,20, 'abc', Vrai]

Méthodes courantes des objets de liste:

méthode Point la description
list.append (x) Ajouter des éléments Ajouter l'élément x à la fin de la liste
list.extend (tout) Ajouter des éléments Ajouter tous les éléments de la liste jusqu'à la fin de la liste
list.insert (index, x) Ajouter des éléments Insérer l'élément x à l'index de position spécifié dans la liste
list.remove (x) Supprimer l'élément Supprimer la première occurrence de l'élément spécifié x dans la liste
list.pop (x) Supprimer l'élément Supprimer et renvoyer l'élément à l'index de position spécifié de la liste
list.pop ([index]) Supprimer l'élément Supprimer et renvoyer l'élément à l'index de position spécifié de la liste, la valeur par défaut est le dernier élément
list.clear () Supprimer tous les éléments Supprimer tous les éléments de la liste, pas supprimer l'objet de la liste
list.index (x) Élément d'accès Renvoie la position d'index du premier x, lève une exception s'il n'y a pas d'élément x
list.count (x) compter Renvoie le nombre de fois où l'élément spécifié x apparaît dans la liste
lin (liste) Longueur de la liste Renvoie le nombre d'éléments de la liste
list.reverse () Flip liste Tous les éléments sont retournés en place
list.sort () Trier Trier tous les éléments en place
list.copy () Copie superficielle Renvoie une copie superficielle de l'objet de liste

La taille de la liste de Python est variable, augmente ou diminue selon les besoins

Les chaînes et les listes sont des types de séquence, une chaîne est unSéquence de caractères, Une liste estTout élémentla séquence de.

Création de liste

La création de la syntaxe de base []

a = [10,20,'slp','sx']
a=[] #创建一个空的列表对象

list () créer

Utilisez list () pour convertir toutes les données itérables en une liste

a =list()# 创建一个空的列表对象
a = list(range(10))
a = list('slp,sx')

range () crée une liste d'entiers

range () peut nous aider à créer une liste d'entiers très facilement: range ([start], end, [step])

  • start: numéro de départ facultatif par défaut 0
  • end: numéro de fin requis
  • step: facultatif signifie que la taille de pas est 1 par défaut

Range () en python3 renvoie un objet range, pas une liste, nous devons le convertir en un objet liste via la méthode list.

Liste générée de manière exhaustive

Utiliser la compréhension de liste peut être très pratique pour créer des données, souvent utilisées dans le développement. Cependant, en raison de la boucle for et de l'instruction if

a = [x*2 for x in range(5)]  #循环创建多个元素
a = [x*2 for x in range(100) if x%9==0] #通过if过滤元素

Ajouter et supprimer des éléments de liste

Lorsque la liste ajoute et supprime des éléments, la liste effectuera automatiquement la gestion de la mémoire, ce qui réduit considérablement la charge du programmeur. Cependant, cette fonctionnalité implique un grand nombre de mouvements d'éléments de liste, ce qui est inefficace. À moins que nous ne soyons diplômés, nous n'ajoutons généralement que des éléments à la fin de la liste, ce qui augmentera considérablement l'efficacité de la liste.

méthode append ()

La modification de l'objet de liste en place est le moyen le plus rapide d'ajouter de nouveaux éléments à la fin de la liste. Utilisation recommandée

a = [20,40]
a.append(80)

+ Opération opérateur

Il ne s'agit pas vraiment d'ajouter des éléments à la fin, mais de créer un nouvel objet de liste; copiez à leur tour les éléments de la liste d'origine et les éléments de la nouvelle liste dans le nouvel objet de liste. De cette manière, un grand nombre d'opérations de copie sont impliqués, et il n'est pas recommandé d'utiliser un grand nombre d'éléments.

a = [20,40]
id(a) #46016027
a = a+[50]
id(a)# 46015432

À partir de ce qui précède, l'adresse de a a changé, c'est-à-dire qu'un nouvel objet de liste est créé.

extend () méthode

L'ajout de tous les éléments de la liste cible à la fin de cette liste est une opération in-situ et ne crée pas de nouvel objet liste

a = [20,40]
a.extend([50,60])

insert () insert élément

Utilisez la méthode insert () pour insérer l'élément spécifié dans n'importe quelle position spécifiée de l'objet de liste. Cela déplacera tous les éléments derrière la position d'insertion, ce qui affectera la vitesse de traitement. Lorsqu'un grand nombre d'éléments sont impliqués, essayez d'éviter de les utiliser. Similaire à la fonction de ce type de mouvement, il y a remove () pop () del () Ils déplaceront également les éléments derrière la position de fonctionnement lors de la suppression d'éléments non-tail

Extension de multiplication

Utilisez la multiplication pour développer la liste afin de générer une nouvelle liste. Le nouvel élément de liste est composé de plusieurs répétitions de l'élément de liste d'origine.

Convient également pour les opérations de multiplication: ancêtre de chaîne.

del supprimer

Supprimer l'élément à la position spécifiée de la liste (le principe sous-jacent est toujours une copie du tableau)

a = [10,20,30]
del a[1] #删除第一个元素,下标是从0开始的

méthode pop ()

pop () supprime et renvoie l'élément à la position spécifiée, si aucune position n'est spécifiée, le dernier élément de la liste est exploité par défaut

a  = [10,20,30]
a.pop() #30

retirer()

Supprimer l'élément spécifié qui apparaît pour la première fois et lever une exception si l'élément n'existe pas

a=[10,20,10,30]
a.remove(10) #[20,10,30]

Accès et nombre d'éléments de liste

Accès direct aux éléments via l'index

On peut accéder directement à l'élément via l'index, la plage d'index est dans la plage de [0, list length-1], si elle dépasse cette plage, une exception sera levée

index () Récupère l'index de la première occurrence de l'élément spécifié dans la liste

index () peut obtenir la position d'index de la première occurrence de l'élément spécifié, la syntaxe est index (valeur, [début, [fin]]) où début et fin spécifient la plage de recherche

count () Obtient le nombre de fois où l'élément spécifié apparaît dans la liste

count () peut renvoyer le nombre de fois où l'élément spécifié apparaît dans la liste

a = [10,20,10,30]
a.count(10) #2

len () renvoie la longueur de la liste

len () renvoie la longueur de la liste, qui est le nombre d'éléments

Jugement des membres

Pour déterminer s'il y a un élément spécifié dans la liste, nous pouvons utiliser la méthode count (). Si elle renvoie 0, cela signifie qu'il n'existe pas. S'il est supérieur à 0, cela signifie qu'il existe, mais généralement nous utiliserons le mot clé le plus concis pour juger, et renvoyer Vrai ou Faux directement

a = [10,20,40]
10 in a #True

Opération de tranche

Le découpage est une séquence python et son opération importante, adaptée aux listes, méta-ancêtres, chaînes, etc.

Le format de la tranche est le suivant:

[Début du décalage début et fin du décalage fin [: longueur du pas]]

L'opération typique est la suivante (lorsque le paramètre est positif):

Fonctionnement et instructions Exemple résultat
[:] Extraire la liste entière [10,20,30] [:] [10,20,30]
[début: de l'index de début à la fin] [10,20,30] [1:] [20,30]
[: end] Du début à la fin-1 [10,20,30] [: 2] [10,20]
[début: fin] Du début à la fin-1 [10,20,30,40] [1: 3] [20,30]
[début: fin: étape] Extraire du début à la fin-1, la longueur de l'étape est l'étape [10,20,30,40,50,60,60] [1: 6: 2] [20,40,60]

Autres opérations (trois quantités sont négatives):

Exemple La description résultat
[10,20,30,40,50,60,70] [-3:] Trois derniers [50,60,70]
[10,20,30,40,50,60,70] [-5: -3] Le cinquième du bas au troisième du bas (l'en-tête n'inclut pas la queue) [30,40]
[10,20,30,40,50,60,70] [:: - 1] La taille du pas est négative et l'extraction est inversée de droite à gauche [70, 60, 50, 40, 30, 20, 10]

Pendant l'opération de découpage, le décalage de début et le décalage de fin ne sont pas dans la plage de [0, string length-1], etPas d'erreur, Le début inférieur à 0 sera considéré comme 0, la fin supérieure à la longueur -1 sera considérée comme -1

Parcours de liste

for i in listObj:
    doSomething()

Copiez tous les éléments de la liste dans le nouvel objet de liste

Le code suivant implémente-t-il la copie des éléments de liste?

liste1 = [30,40,50]

list2 = liste1

Pointez simplement list2 sur l'objet liste, c'est-à-dire que list2 et list1 contiennent la même valeur d'adresse. L'élément de liste lui-même n'est pas copié.

Tri de liste

Modifier la liste d'origine, ne pas créer le tri de la nouvelle liste

a = [20,10,30,40]
id(a)
a.sort() #默认是升序
a.sort(reerse=True) #降序排列
random.shuffle(a) #打乱顺序

Tri des nouvelles listes

On peut aussi trier par == fonction intégrée sorted () ==, cette méthode retourne une nouvelle liste

a = [20,10,30,40]
id(a)
a = sorted(a) # 内置函数 会生成新的列表,所以下方id函数的返回值会变掉
id(a)

reverse () renvoie un itérateur

Le reverse () intégré prend également en charge le tri inversé. Contrairement à la méthode reverse () de l'objet de liste, le reverse () intégré ne modifie pas la liste d'origine, mais renvoie un objet itérateur trié dans l'ordre inverse.

a = [20,10,30,40]
c = reversed(a)
list(c) #C是一个迭代器对象,需要转换一下 迭代器只能用一次 转换一次之后就不能再用了

Répertorier le résumé des autres fonctions intégrées

max et min

Renvoie les valeurs maximum et minimum de la liste

somme

Effectuer une opération de somme sur tous les éléments d'une liste numérique et une erreur sera signalée pour une opération de liste non numérique

Liste multidimensionnelle

Liste bidimensionnelle

Les listes unidimensionnelles peuvent nous aider à stocker unidimensionnel. Données linéaires

Les listes bidimensionnelles peuvent nous aider à stocker des données tabulaires bidimensionnelles

a = [
    ['高小一',18,30000,'北京'],
    ['高小二',19,40000,'上海'],
    ['高小五',20,1000,'深圳']
]

Diagramme de structure de la mémoire:
Insérez la description de l'image ici

Recherchez [Zixin] sur WeChat ou scannez le code QR ci-dessous pour vous faire des amis et progresser ensemble. L'article est mis à jour en permanence. Actuellement, j'organise les notes d'étude des cent batailles Python, et j'attends avec impatience d'autres mises à jour dans le futur.
Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_51656605/article/details/112648028
conseillé
Classement