Python组合数据类型(简版)
来自CloudWiki
Cloud17(讨论 | 贡献)2019年11月12日 (二) 08:56的版本 (创建页面,内容为“*文件:python6-1.png ==列表概述== ===列表:打了激素的数组=== *列表(list)是最重要的Python内置对象之一,是包含若干元素的…”)
目录
列表概述
列表:打了激素的数组
- 列表(list)是最重要的Python内置对象之一,是包含若干元素的有序连续内存空间。
列表的语法
- 在形式上,列表的所有元素放在一对方括号[]中,相邻元素之间使用逗号分隔。
[10, 20, 30, 40] ['crunchy frog', 'ram bladder', 'lark vomit'] ['spam', 2.0, 5, [10, 20]] [['file1', 200,7], ['file2', 260,9]] [{3}, {5:6}, (1, 2, 3)]
列表的使用
列表的创建和删除
- 使用“=”直接将一个列表赋值给变量即可创建列表对象。
>>> a_list = ['a', 'b', 'mpilgrim', 'z', 'example'] >>> a_list = [] #创建空列表
- 当一个列表不再使用时,可以使用del命令将其删除,这一点适用于所有类型的Python对象。
>>> x = [1, 2, 3] >>> del x #删除列表对象 >>> x #对象删除后无法再访问,抛出异常 NameError: name 'x' is not defined
列表元素访问
- 创建列表之后,可以使用整数作为下标来访问其中的元素,其中0表示第1个元素,1表示第2个元素,2表示第3个元素,以此类推;列表还支持使用负整数作为下标,其中-1表示最后1个元素,-2表示倒数第2个元素,-3表示倒数第3个元素,以此类推。
>>> x = list('Python') #创建类别对象 >>> x ['P', 'y', 't', 'h', 'o', 'n'] >>> x[0] #下标为0的元素,第一个元素 'P' >>> x[-1] #下标为-1的元素,最后一个元素 'n'
列表的常用方法
append()、insert()、extend()
- append()用于向列表尾部追加一个元素,insert()用于向列表任意指定位置插入一个元素,extend()用于将另一个列表中的所有元素追加至当前列表的尾部。这3个方法都属于原地操作,不影响列表对象在内存中的起始地址。
>>> x = [1, 2, 3] >>> id(x) #查看对象的内存地址 50159368 >>> x.append(4) #在尾部追加元素 >>> x.insert(0, 0) #在指定位置插入元素 >>> x.extend([5, 6, 7]) #在尾部追加多个元素 >>> x [0, 1, 2, 3, 4, 5, 6, 7] >>> id(x) #列表在内存中的地址不变 50159368
pop()、remove()、clear()
- pop()用于删除并返回指定位置(默认是最后一个)上的元素;remove()用于删除列表中第一个值与指定值相等的元素;clear()用于清空列表中的所有元素。这3个方法也属于原地操作。
- 另外,还可以使用del命令删除列表中指定位置的元素,同样也属于原地操作。
>>> x = [1, 2, 3, 4, 5, 6, 7] >>> x.pop() #弹出并返回尾部元素 7 >>> x.pop(0) #弹出并返回指定位置的元素 1 >>> x.clear() #删除所有元素 >>> x [] >>> x = [1, 2, 1, 1, 2] >>> x.remove(2) #删除首个值为2的元素 >>> del x[3] #删除指定位置上的元素 >>> x [1, 1, 1]
count()、index()
- 列表方法count()用于返回列表中指定元素出现的次数;index()用于返回指定元素在列表中首次出现的位置,如果该元素不在列表中则抛出异常。
>>> x = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4] >>> x.count(3) #元素3在列表x中的出现次数 3 >>> x.count(5) #不存在,返回0 0 >>> x.index(2) #元素2在列表x中首次出现的索引 1 >>> x.index(5) #列表x中没有5,抛出异常 ValueError: 5 is not in list
sort()、reverse()
- 列表对象的sort()方法用于按照指定的规则对所有元素进行排序;reverse()方法用于将列表所有元素逆序或翻转。
>>> x = list(range(11)) #包含11个整数的列表 >>> import random >>> random.shuffle(x) #把列表x中的元素随机乱序 >>> x [6, 0, 1, 7, 4, 3, 2, 8, 5, 10, 9] >>> x.sort(key=lambda item:len(str(item)), reverse=True) #按转换成字符串以后的长度,降序排列 >>> x [10, 6, 0, 1, 7, 4, 3, 2, 8, 5, 9] >>> x.sort(key=str) #按转换为字符串后的大小,升序排序 >>> x [0, 1, 10, 2, 3, 4, 5, 6, 7, 8, 9] >>> x.sort() #按默认规则排序 >>> x [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> x.reverse() #把所有元素翻转或逆序 >>> x [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]