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:
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]
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:
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.