列表介绍
列表是Python中最基本也是最常用的数据结构之一。列表中的每个元素都被分配一个数字作为索引,用来表示该元素在列表内所排在的位置。第一个元素的索引是0,第二个索引是1,依此类推。
Python的列表是一个有序可重复的元素集合,可嵌套、迭代、修改、分片、追加、删除,成员判断。
从数据结构角度看,Python的列表是–个可变长度的顺序存储结构,每一个位置存放的都是对象的指针。
python中,用[]类定义列表
>>> list1= [1,2,3,4,5] >>> list1 [1, 2, 3, 4, 5] >>> list2= [1,2,3,1,2] # 可重复 >>> list2 [1, 2, 3, 1, 2] >>> list3= [1,2,3,[4,5]] # 可嵌套 二维列表 >>> list3 [1, 2, 3, [4, 5]] >>>
创建方式
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
list = [] #定义空列表 list1 = [ 'physics', 1997,2000] list2 = [1, 2,3] list3 = ["a", "b", "C"]
列表内的元素
列表从0开始为它的每一个元素顺序创建下标索引,直到总长度减一。要访问它的某个元素,以方括号加下标值的方式即可。注意要确保索引不越界,一旦访问的索引超过范围,会抛出异常。所以,一定要记得最后一个元素的索引是len(list)-1。
查看列表元素
>>> list3= [1,2,3,[4,5]] >>> list3[3][1] # 二维列表先取到[4,5]得到一维列表,在从一维列表取到5 5 >>>
修改元素的值
直接对元素进行重新赋值。
>>> list3= [1,2,3,[4,5]] >>> list3[3][1]='a' >>> list3 [1, 2, 3, [4, 'a']] >>>
删除元素
使用del语句或者remove(),pop()方 法删除指定的元素。
>>> list3= [1,2,3,[4,5]] >>> del list3[0] # 直接删 >>> list3 [2, 3, [4, 5]] >>>
>>> list3.remove(2) # 删除一个值为2的元素 >>> list3 [3, [4, 5]] >>>
>>> list3= [1,2,3,[4,5]] >>> list3.pop(1) # pop 删除指定位置上的元素 2 >>> list3 [1, 3, [4, 5]] >>> list3.pop() # pop 不指定的时候默认从最后一个元素删 [4, 5] >>> list3 [1, 3] >>>
列表的特殊操作
1)列表组合
>>> list1 = [1,2,3] >>> list2 = [4,5,6] >>> list1+list2 [1, 2, 3, 4, 5, 6] >>> list3 = list1 + list2 >>> list3 [1, 2, 3, 4, 5, 6] >>>
2)列表的乘法
>>> list1 = [1,2,3] >>> list1 * 2 [1, 2, 3, 1, 2, 3] # 重复 >>>
3)判断元素是否在列表内部
>>> list1 = [1,2,3] >>> list1 [1, 2, 3] >>> 1 in list1 True >>> 5 in list1 False
4)迭代列表中的每个元素
该操作符依次访问列表中的所有元素,按照列表中元素的顺序依次来访问。第一次访问列表中的第一个元素,第二次访问列表中的第二个元素,循环执行直到访问完最后一个元素。如果列表为空,该操作也是合法的,但是不会执行循环内的代码。
>>> list1 = [1,2,3] >>> for i in list1: # 遍历所有元素 print(i) # 打印输出这些元素的值 1 # 按顺序输出各个元素
列表的常用函数
**len(list)**返回列表元素个数,也就是获取列表长度
**max(list)**返回列表元素最大值
**min(list)**返回列表元素最小值
**list(seq)**将序列转换为列表
>>> list1= [1,2,3,4,5,6] >>> len(list1) 6 >>> max(list1) 6 >>> min(list1) 1 >>> a = (1,2) # 元组 >>> a (1, 2) >>> list(a) [1, 2]
**reverse()**颠倒顺序反转
>>> list1= [1,2,3,4,5,6] >>> list1.reverse() # 修改了原列表 >>> list1 [6, 5, 4, 3, 2, 1] >>>
sort() 排序
>>> list2 = [1,2,3,20,19,5] >>> list2.sort() >>> list2 [1, 2, 3, 5, 19, 20] >>> list2.sort(reverse=True) # 降序 >>> list2 [20, 19, 5, 3, 2, 1] >>>
列表的切片
切片指的是对序列进行截取,选取序列中的某一段。
切片的语法是: list[start:end]
和字符串中的切片类似
>>> list3 = [1,2,3,4,5] >>> list3[2:4] [3, 4] >>> list3[0:4:2] [1, 3] >>> list3[::-1] [5, 4, 3, 2, 1] >>> >>> list5= [1,2,3,4,5,6,7,8,9,10,11,12] >>> list5[2::4] # 起始位置: 终止位置: 步长: [3, 7, 11] >>> list5[2:4] [3, 4] >>>
列表的内置方法
append(obj) 在列表末尾添加新的对象
>>> list3 = [1,2,3,4,5] >>> list3[2:4] [3, 4] >>> list3[0:4:2] [1, 3] >>> list3[::-1] [5, 4, 3, 2, 1] >>> >>> list5= [1,2,3,4,5,6,7,8,9,10,11,12] >>> list5[2::4] # 起始位置: 终止位置: 步长: [3, 7, 11] >>> list5[2:4] [3, 4] >>>
count(obj) 统计某个元素在列表中出现的次数
>>> list6 = [1,2,3,4,5,77,5,5] >>> list6.count(5) # 统计某个元素在列表中出现的次数 3 >>>
extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
>>> list6 = [1,2,3,4,5,77,5,5] >>> list6.extend(['a','b']) >>> list6 [1, 2, 3, 4, 5, 77, 5, 5, 'a', 'b'] >>> list6.append(['c','d']) >>> list6 [1, 2, 3, 4, 5, 77, 5, 5, 'a', 'b', ['c', 'd']] >>>
index(obj) 从列表中找出某个值第一个匹配项的索引位置
>>> list6 = [1, 2, 3, 4, 5, 77, 5, 5, 'a', 'b', ['c', 'd']] >>> list6.index(77)
insert(index, obj) 将对象插入列表
>>> list6.insert(3,'A') >>> list6 [1, 2, 3, 'A', 4, 5, 77, 5, 5, 'a', 'b', ['c', 'd']] >>>
pop(obj=list[-1]) 移除列表中的一个元素 (默认最后-个元素),并且返回该元素的值
>>> list6.pop() ['c', 'd'] >>> list6 [1, 2, 3, 'A', 4, 5, 77, 5, 5, 'a', 'b'] >>>
remove(obj) 移除列表中某个值的第一个匹配项
>>> list6.remove(5) >>> list6 [1, 2, 3, 'A', 4, 77, 5, 5, 'a', 'b'] >>>
reverse() 反向列表中元素
>>> list6 [1, 2, 3, 'A', 4, 77, 5, 5, 'a', 'b'] >>> list6.reverse() >>> list6 ['b', 'a', 5, 5, 77, 4, 'A', 3, 2, 1] >>>
sort([func]) 对原列表进行排序
>>> list2 = [1,2,3,20,19,5] >>> list2.sort() >>> list2 [1, 2, 3, 5, 19, 20] >>> list2.sort(reverse=True) # 降序 >>> list2 [20, 19, 5, 3, 2, 1] >>>
copy() 复制列表
>>> list6 ['b', 'a', 5, 5, 77, 4, 'A', 3, 2, 1] >>> copylist6 = list6.copy() >>> copylist6 ['b', 'a', 5, 5, 77, 4, 'A', 3, 2, 1] >>> clear() 清空列表,等于del list[:] >>> copylist6.clear() >>> copylist6 [] >>> list6 ['b', 'a', 5, 5, 77, 4, 'A', 3, 2, 1] >>> del list6[:] # 清空列表 >>> list6 [] >>> del list6 # 删除列表 >>> list6 Traceback (most recent call last): File "<pyshell#153>", line 1, in <module> list6 NameError: name 'list6' is not defined >>>