序列是一种数据存储方式,用来存储一系列的数据,在内存中,序列就是一块用来存放多个值的连续的内存空间。常用的序列结构有字符串、列表、元组、字典、集合
一.列表简介
- 用于存储任意数目、任意类型的数据集合
- 是内置可变序列
- 如a=[10,20,‘abc’,TURE]
二.列表方法
list.append(x)尾部添加x
list.extend(alist)将alist所有元素加到list尾部
list.insert(index,x)在指定位置插入x
list.remove(x)删除首次出现的x
list.pop([index])删除并返回指定位置元素,默认为最后一个
list.clear()清除所有元素
。。。
一般只在列表的尾部添加或删除元素
列表添加、删除
1 .append()
2. +运算符操作
并不是真正的尾部添加元素,而是创建新的列表对象,将原列表的元素和新列表的元素依次复制到新的列表对象中,不建议使用
如a=a+[50]
3. extend()方法
a.extend([50,60])不创建新的对象,推荐使用
4.insert()在指定位置插入x
不推荐使用
5.乘法扩展b=a*3
6. del删除
如 del a[1],实际上是将后面的元素往前拷贝
7.pop()删除并返回指定位置元素,默认为最后一个
a=[10,20,30,40]
b=a.pop()
b就是40,a为[10,20,30]
8. a.remove(x)删除首次出现的x
注:列表对象大小可变,字符串的很多方法列表中也类似
三.列表创建
四种方法
1. 基本语法[]创建
a=[10,20,‘abc’,TURE]
2. list()创建
使用list可将任何可迭代的数据转化为列表
3. range([start,] end [,step])
如list.range(0,10,1)
结果为[0,1,2,3,4,5,6,7,8,9]
4. 推导式生成列表
如a=[x*2 for x in range(5)]
结果为a=[0,2,4,6,8]
常与for循环、if判断结合
四.列表的访问与计数
- 可通过索引直接访问元素,如a[2]
- index()获得指定元素在列表中首次出现的索引
语法:index(value,[start,[end]]),其中start和end指定了搜索的范围
如a.index(20)返回首个元素20的索引
a.index(20,3)从索引位置3开始访问 - count()获得指定元素在列表中出现的次数
如a.count(20)返回20出现的次数 - len()返回列表的长度
如len(a)
五.成员资格判断
判断列表中是否存在指定的元素,可使用count()方法,返回0则表示不存在
不过一般用in关键字来判断
如20 in a
结果返回true或false
六.列表切片操作
格式:
[start: end: step] 包头不包尾
七.列表排序
1.修改原列表,不建新列表的排序
a.sort()升序
a.sort(reverse=True)降序
import random
random.shuffle(a)打乱顺序
2.建新列表的排序
通过内置函数sorted()进行排序,返回新列表
a=sorted(a)默认升序
b=sorted(a,reverse=True)降序
3.reversed()返回迭代器
内置函数reversed()也支持逆序排列,与列表对象reverse()方法不同,reversed()不对原列表做任何修改,只返回一个逆序排列的迭代对象
a=[20,10,30,40]
b=reversed(a)
list(b)为[40,30,10,20]
八.列表相关的其它内置函数
- max、min返回列表的最大值和最小值
max(a)
min(a) - sum数值型元素求和,非数值型报错
sum(a)
九.多维列表
1. 二维列表
一维存储线性数据[10,20,3,4]
二维[[10,3],[80],[1],2]列表内套一层
二维可存储表格数据
引用:
a[0]列表第一行
a[0][1]第一行第二个元素