Maison >développement back-end >Tutoriel Python >Introduction aux opérations courantes sur les listes en Python

Introduction aux opérations courantes sur les listes en Python

高洛峰
高洛峰original
2017-03-22 11:16:051858parcourir

Principalement lié aux points de connaissance

La liste est le type de données le plus courant dans notre python Nous avons principalement les opérations suivantes.

1. Index

2. Tranche

3. Ajouter

4. >

6.

Boucle

(également appelée traversée)

7. Contient

Imbriqué

Par exemple. Définition de la liste :

Principalement impliqué les méthodes de base et l'introduction

List2=['openstack','python','linux',"docker","zabbix","nginx","linux","linux","123","ww33##"]
或者
List2=list(['openstack','python','linux',"docker","zabbix","nginx","linux","linux","123","ww33##"])

Exemple simple : Introduction aux opérations courantes sur les listes en Python

1. Définition de la liste

2. Découpage et valeur de liste

 >>> List2=list(['openstack','python','linux',"docker","zabbix","nginx","linux","
linux","123","ww33##"])
>>> print(List2)
['openstack', 'python', 'linux', 'docker', 'zabbix', 'nginx', 'linux', 'linux',
'123', 'ww33##']
或者List2=['openstack','python','linux',"docker","zabbix","nginx","linux","
linux","123","ww33##"] 我们直接用后面的这种定义,检验和模拟相关方法和切片等。
Le découpage est principalement une méthode pour obtenir une partie ou un élément unique de la liste. Les éléments de la liste sont accessibles via des indices, et les indices commencent à compter à partir de. 0.

Obtenez une certaine valeur dans la liste (prenez la valeur via l'indice, l'indice commence à 0)

Ajoutez des éléments à la liste
List2=['openstack','python','linux',"docker","zabbix","nginx","linux","linux","123","ww33##"]
print(List2[0])
print(List2[1])
print(List2[-2])
结果:
openstack
python
123
 
    我们发现在取值时下标为零的恰好取的值为是第一位元素,更好的证明了下标从零开始这一说法,
 同时发现print(List2[-2])恰好是倒数第二位元素,由此可见不仅顺着取值,可以倒着取值。
切片:访问里面的前多个值:
List2=['openstack','python','linux',"docker","zabbix","nginx","linux","linux","123","ww33##"]
 
print(List2[0:3]) #取前三个
 
结果:
['openstack', 'python', 'linux']
再试试
print(List2[:3])
结果:
['openstack', 'python', 'linux']
由此我们可以看出开始下标是0的时候,可以省略不写,还需要注意下标[0:3]能取到1,2,3位的元素,
即表示第四位取不到,在我们边界取值时需要注意。
print(List2[3:-1]) #取不到最后一位
print(List2[3:])  #取得第四位到最后一位
print(List2[2:9:2])#取出下标为第二位到下标为9之间的 每隔一个元素取一次
print(List2[-3:-1]) #倒着取值取出倒数第三位和倒数第二位
print(List2[-3:])#取出倒数的后三位
print(List[0::2])#每隔一个元素取一次
print(list[::2]) #每隔一个元素取一次 和上面的一样
结果:
['docker', 'zabbix', 'nginx', 'linux', 'linux', '123']
['docker', 'zabbix', 'nginx', 'linux', 'linux', '123', 'ww33##']
['linux', 'zabbix', 'linux', '123']
['linux', '123']
['linux', '123', 'ww33##']
Utilisez principalement la méthode append pour ajouter des éléments, ajoutez


à la fin pour insérer un élément à une certaine position, vous pouvez utiliser la méthode insert pour obtenir

List2.append("winner")
print(List2)
结果:
['openstack', 'python', 'linux', 'docker', 'zabbix', 'nginx', 'linux', 'linux', '123', 'ww33##', 'winner']
4. Modifier la valeur d'un élément

Modifier la valeur d'un élément, généralement par réaffectation.
List2.insert(2,"baidu") #在第三位插入元素baidu
print(List2)
结果:
['openstack', 'python', 'baidu', 'linux', 'docker', 'zabbix', 'nginx','123', 'ww33##']
由此看出在某位置插入时,该位置元素整体向后移动。

5. Supprimer

La suppression est divisée en suppression d'un et suppression de tous. Lors de la suppression d'éléments individuels, nous pouvons utiliser la méthode remove() et la méthode pop(), et utiliser del. et clear
List2[2]="我的钢铁"
List2[-1]="人生苦短,我用python!"
#List2.insert(2,"baidu")
print(List2)
['openstack', 'python', '我的钢铁', 'docker', 'zabbix', 'nginx', '123', '人生苦短,我用python!']
() peut supprimer la liste entière. Analysons ensuite les différences entre les différentes méthodes à l’aide d’exemples.

Le paramètre du milieu de la méthode pop() est l'indice. Lorsqu'il n'y a pas de paramètre, le dernier chiffre est supprimé par défaut.

Le paramètre dans la méthode remove() est directement le contenu de l'élément

La méthode clear() est utilisée pour traiter la liste entière
List2.pop(1)
print(List2)
结果
['openstack', 'linux', 'docker', 'zabbix', 'nginx', '123', 'ww33##']
List2.pop(-4)
print(List2)
结果:
['openstack', 'python', 'linux', 'docker', 'nginx', '123', 'ww33##']

del peut supprimer toute la liste ou un seul élément
List2.remove('linux')
print(List2)
结果:
['openstack', 'python', 'docker', 'zabbix', 'nginx', '123', 'ww33##']
当列表存在相同元素linux时:
List2=['openstack','linux','python','linux',"docker","zabbix","nginx","123",'linux',"ww33##"]
List2.remove('linux')
print(List2)
结果:
['openstack', 'python', 'linux', 'docker', 'zabbix', 'nginx', '123', 'linux', 'ww33##']
当存在多个值时只会删除一个值

En observant les résultats, vous pouvez constater que del supprime la liste définie et clear() vide les éléments de la liste.
List2.clear()
print(List2)
结果:
[]

6. Interroger la position et le nombre d'occurrences d'un élément (les éléments de la liste peuvent être répétés)

del  List2
print(List2)
del  List[2]
结果:
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/s14/jiounumber.py", line 21, in <module>
    print(List2)
NameError: name &#39;List2&#39; is not defined
删除个别元素 结合切片
List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,"中国","中东",&#39;linux&#39;,123,"ww33##"]
del List2[2]
print(List2)
结果:
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;中国&#39;, &#39;中东&#39;, &#39;linux&#39;, 123, &#39;ww33##&#39;]

L'interrogation de la liste comprend principalement des statistiques sur la longueur de la liste et l'interrogation des éléments d'un certain contenu À quelle position, il est principalement réalisé en utilisant la méthode d'indexation index() et la méthode d'occurrence d'élément

count

().

On constate que lorsqu'un élément contient plusieurs éléments de même forme, l'index trouve généralement le premier élément. 7. Retourner et trier la liste

List2=[&#39;openstack&#39;,&#39;python&#39;,&#39;linux&#39;,"docker","zabbix","nginx","123","ww33##"]
索引:
print(List2.index("linux"))
结果
2
 
统计:
print(List2.count("linux"))
结果
1
 
List2=[&#39;openstack&#39;,&#39;linux&#39;,&#39;python&#39;,&#39;linux&#39;,"docker","zabbix",&#39;linux&#39;,"nginx","123","ww33##"]
print(List2.index("linux"))
print(List2.count("linux"))
结果:
1
3
Vous pouvez retourner et trier la liste via la méthode reverse() et la méthode

sort

() La méthode dite de retournement. est de retourner la liste La position des éléments est à nouveau inversée, et le tri est principalement basé sur le code Ascall,

De là on constate que le tri de la liste est toujours très NB Concernant. les entiers et les chaînes ci-dessus qui ne peuvent pas être comparés, nous pouvons convertir un entier en comparaison de chaînes.

List2=[&#39;openstack&#39;,&#39;linux&#39;,&#39;python&#39;,&#39;linux&#39;,"docker","zabbix",&#39;linux&#39;,"nginx","123","ww33##"]
List2.reverse()
print(List2)
结果:
[&#39;ww33##&#39;, &#39;123&#39;, &#39;nginx&#39;, &#39;linux&#39;, &#39;zabbix&#39;, &#39;docker&#39;, &#39;linux&#39;, &#39;python&#39;, &#39;linux&#39;, &#39;openstack&#39;]
 
排序:
List2.sort()
print(List2)
[&#39;123&#39;, &#39;docker&#39;, &#39;linux&#39;, &#39;linux&#39;, &#39;linux&#39;, &#39;nginx&#39;, &#39;openstack&#39;, &#39;python&#39;, &#39;ww33##&#39;, &#39;zabbix&#39;]
再稍微复杂一点,里面添加中文和整数等内容
List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,123,"docker","zabbix",&#39;linux&#39;,30.84,"123","ww33##"]
List2.sort()
print(List2)
执行结果:
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/s14/jiounumber.py", line 24, in <module>
    List2.sort()
TypeError: unorderable types: int() < str()
整型和字符串无法比较,接下来,再试试
List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,"中国","中东",&#39;linux&#39;,"123","ww33##"]
List2.sort()
print(List2)
[&#39;123&#39;, &#39;linux&#39;, &#39;openstack&#39;, &#39;python&#39;, &#39;ww33##&#39;, &#39;中东&#39;, &#39;中国&#39;, &#39;云计算&#39;]
8. Boucles, inclusions et

copie(), méthodes extend()

Boucles, généralement via

boucles for La méthode d'impression elements

comprend : On peut juger si un certain contenu est dans la liste. La valeur de retour du résultat est une valeur booléenne True ou False. S'il existe, il est vrai et s'il n'existe pas. existent, c'est faux.

Méthode entendre Grâce à cette méthode, vous pouvez fusionner deux listes en une seule sans aucun impact sur l'une des valeurs. La méthode
List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,"中国","中东",&#39;linux&#39;,"123","ww33##"]
for  i  in List2 :
    print (i)
print(List2)
结果:
openstack
云计算
python
中国
中东
linux
123
ww33##
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, &#39;中国&#39;, &#39;中东&#39;, &#39;linux&#39;, &#39;123&#39;, &#39;ww33##&#39;]
通过循环我们就可以找出列表的每个元素。同时我们也可以看出这时的打印和之前的有所不同

copy()
List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,"中国","中东",&#39;linux&#39;,123,"ww33##"]
print( &#39;linuxww&#39;  in List2)
print(&#39;中东&#39; in List2)
print(123  in List2)
print( 12 in List2)
结果:
False
True
True
False

peut copier la liste
List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,"中国","中东",&#39;linux&#39;,123,"ww33##"]
List1=[123,&#39;abc&#39;,&#39;中国&#39;]
#print( &#39;linuxww&#39;  in List2)
#print(&#39;中东&#39; in List2)
print(List2,List1)
print(List1)
List1.clear()
print(List1)
结果:
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, &#39;中国&#39;, &#39;中东&#39;, &#39;linux&#39;, 123, &#39;ww33##&#39;] [123, &#39;abc&#39;, &#39;中国&#39;]
[123, &#39;abc&#39;, &#39;中国&#39;]
[]
 
由此发现extend方法并不会影响被合并列表(List1)的值,只有自己做其他操作时才会发生变化。


Autres opérations sur la liste

En plus. aux opérations principales ci-dessus, nous pouvons également effectuer les opérations suivantes sur la liste. Les

opérateurs
List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,"中国","中东",&#39;linux&#39;,123,"ww33##"]
list3=List2.copy()
print(List2,list3)
结果:
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, &#39;中国&#39;, &#39;中东&#39;, &#39;linux&#39;, 123, &#39;ww33##&#39;]
 [&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, &#39;中国&#39;, &#39;中东&#39;, &#39;linux&#39;, 123, &#39;ww33##&#39;]
  
注意事项:
 List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,["中国","中东"],&#39;linux&#39;,123,"ww33##"]
list3=List2.copy()
print(List2)
print(list3)
List2[2]="MYSQl DBA"
List2[3][1]="北京"
print(List2)
print(list3)
执行结果:
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, [&#39;中国&#39;, &#39;中东&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, [&#39;中国&#39;, &#39;中东&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;MYSQl DBA&#39;, [&#39;中国&#39;, &#39;北京&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, [&#39;中国&#39;, &#39;北京&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
我们将列表List2中的List2[2]的python和List2[3][1]的中东更改为List2[2]="MYSQl DBA"和List2[3][1]="北京
输出后发现复制的那一部分List2[3][1]复制后是一样的,而List2[2]的值会不一样。主要是内存的地址原因。
同时对这种情况想要复制相同的是不行的
List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,["中国","中东"],&#39;linux&#39;,123,"ww33##"]
list3=List2
print(List2)
print(list3)
List2[2]="MYSQl DBA"
List2[3][1]="北京"
print(List2)
print(list3)
这里给list3赋值为List2这时会发现更改List2时,会直接更改list3的值
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, [&#39;中国&#39;, &#39;中东&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, [&#39;中国&#39;, &#39;中东&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;MYSQl DBA&#39;, [&#39;中国&#39;, &#39;北京&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;MYSQl DBA&#39;, [&#39;中国&#39;, &#39;北京&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
要想复制完全一样的,我们可以导入copy模块
import copy
List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,["中国","中东"],&#39;linux&#39;,123,"ww33##"]
list3=copy.deepcopy(List2)
print(List2)
print(list3)
List2[2]="MYSQl DBA"
List2[3][1]="北京"
print(List2)
print(list3)
执行的结果:
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, [&#39;中国&#39;, &#39;中东&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, [&#39;中国&#39;, &#39;中东&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;MYSQl DBA&#39;, [&#39;中国&#39;, &#39;北京&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, [&#39;中国&#39;, &#39;中东&#39;], &#39;linux&#39;, 123, &#39;ww33##&#39;]
这时发现,List2元素的值改变不会影响list3的值,下面的这种copy,我们称为deep.copy,而列表的
copy()方法是一种浅copy
pour les listes paires + et * sont similaires à ceux pour les chaînes. Le signe + est utilisé pour combiner des listes, le signe * est utilisé pour répéter des listes

liste python fonction

List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,"中国","中东",&#39;linux&#39;,123]
list3=["open","ip","config"]
print(List2+list3)
print(list3*3 )
结果:
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, &#39;中国&#39;, &#39;中东&#39;, &#39;linux&#39;, 123, &#39;open&#39;, &#39;ip&#39;, &#39;config&#39;]
[&#39;open&#39;, &#39;ip&#39;, &#39;config&#39;, &#39;open&#39;, &#39;ip&#39;, &#39;config&#39;, &#39;open&#39;, &#39;ip&#39;, &#39;config&#39;]
+号实现的功能和之前的append()方式一样,而*表示重复,后面的的数字表示重复的次数。
Ci-dessus, nous avons analysé la méthode de liste de python, liste python Il existe également des fonctions de liste, les plus courantes sont max(list), min(list), len(list) et list(seq) :

len(list) est la longueur de la liste mentionnée ci-dessus,

max(list) La valeur maximale de la liste

min(list) La valeur minimale de la liste

list(seq) Convertir le tuple en un list, nous savons que le tuple L'attribut de base

est le même que la liste. La différence est que la liste est définie à l'aide de crochets [], tandis que le tuple est défini à l'aide de parenthèses () et les éléments. du tuple ne peut pas être réaffecté.

Exemple

10. Imbrication de listes

     在上面讲到列表的copy()方法时,我们就用到了列表,因为列表的元素可以是任何类型,所以列表的元素还可以是列表,这时候的列表就会形成嵌套关系。

例如:

List2=[&#39;openstack&#39;,&#39;云计算&#39;,&#39;python&#39;,"中国","中东",[["open","ip"],"config",&#39;999&#39;,&#39;2929&#39;,]]
print(List2)
结果: 实现三层嵌套
[&#39;openstack&#39;, &#39;云计算&#39;, &#39;python&#39;, &#39;中国&#39;, &#39;中东&#39;, [[&#39;open&#39;, &#39;ip&#39;], &#39;config&#39;, &#39;999&#39;, &#39;2929&#39;]]

总结:以上内容主要是python中对列表的操作,全部属于基础知识,并且所有的示例都是亲手实践所得到的结果,由于经验不足,或许只能理解列表知识的一部分,哪里有错误,还请各位朋友指正。

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