Python基础——序列(上)
- 列表的创建
- 列表的增加和删除
- 增加
- 删除
- 列表排序
列表的创建
列表中的元素可以各不相同,可以是任意类型,且Python的列表大小可变,可随时增加或缩小。
- list方法
使用list()可以将任何可迭代的数据转化成列表。
>>> a=list #创建一个空的列表对象
>>> a=list(range(4)) #转为列表
>>>a
[0,1,2,3]
- range()创建整数列表
语法格式为:range([start,]end[,step])
其中,end参数必选,另外两个参数可选,默认分别为0、1。 - 推导式生成列表
涉及到for循环和if语句,运用举例如下:
>>>a = [x*2 for x in range(5)] #对x依次乘2,循环创建多个元素
>>>a
[0,2,4,6,8]
>>>a = [x*2 for x in range(50) if x%9==0] #通过if过滤元素,此处是筛选出能被9整除的数
>>>a
[0,18,36]
列表的增加和删除
增加
一些效率高,速度快的方法:
- append()方法
原地修改列表对象,真正的列表尾部添加新的元素,速度最快。
>>> a = [20]
>>> a.append(40)
>>> a
[20,40]
- extend()方法
同样是原地操作,将目标列表的所有元素添加到本列表的尾部。这一方法需要特别注意格式,“()”内部为列表格式。
>>> a = [20]
>>> a.extend([40,50])
影响处理速度(涉及列表元素的大量移动),但同样能增加列表元素的方法:
- “+”运算符操作
并不是真正的尾部添加元素,而是创建新的列表对象,运用格式如下:
>>> a = [20]
>>> a = a+[50] #地址发生变化,此时产生了新的对象
- insert()插入元素等方法
可以将指定元素插入到列表对象的任意指定位置,但插入位置后的所有元素会进行移动,效率较低,同样注意格式。
>>> a = [19,20,4]
>>> a.insert(1,3) #在索引1处插入元素3
>>> a
[19,3,20,4]
删除
原理:在删除非尾部元素时会发生操作位置后面元素的移动。
- del删除
删除列表指定位置的元素:
>>> a = [1,2,3,4]
>>> del a[1] #删除索引为1的元素,此处为“2”
>>> a
[1,3,4]
- pop()方法
删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。(相当于弹出元素)
>>> a = [1,2,3,4]
>>> a.pop() #()中填写索引,未填则默认最后一个
4
>>> a
[1,2,3]
- remove()方法
删除首次出现的指定元素,若不存在该元素则抛出异常。
>>> a = [1,2,4,2,3,7]
>>> a.remove(2)
>>> a
[1,4,2,3,7]
列表排序
- 修改原列表,不建新列表的排序
进行升序、降序以及随机打乱顺序三种操作的举例如下:
>>> a = [1,4,2,3]
>>> a.sort() #默认是升序排列
>>> a
[1,2,3,4]
>>> a.sort(reverse=True) #降序排列
>>> a
[4,3,2,1]
>>> import random #导入新模块
>>> random.shuffle(a) #随机打乱
>>> a
[2,4,1,3]
- 建新列表的排序
通过内置函数sorted()进行排序,这一方法生成新列表而不对原列表做修改。
>>> a = [1,4,2,3]
>>> id(a)
46016008
>>> a=sorted(a) #默认是升序排列
>>> a
[1,2,3,4]
>>> id(a)
45907848
#发现id不一样了,即这是的a已经不是原始的a了,而是生成的新对象