前面介绍了序列相关的基础知识,因为列表也是序列的一种,所以里边的示例大部分采用的列表的形式体现,这一节重点介绍一下列表的特性以及相关操作。
01. 列表的特性
前文讲到,列表也是一种序列,所以列表具有标准序列所具有的所有特性和操作,比如:索引、切片、相加、相乘、成员资格检查等,除此之外列表与其他序列最大的不同就是,列表是可变的,而元组和字符串都是不可变的。接下来将针对列表的这一特性介绍一下相关的操作。
02. 列表的操作
列表的操作主要有一下几种:
- 给元素赋值
- 删除元素
- 给切片赋值
给元素赋值: 为列表的某个位置的元素赋值需要首先使用之前介绍的序列索引的知识获取列表的指定元素,然后再使用普通的赋值符号为元素赋值,举个例子:
mlist = ['a', 'b', 'c']
# 为索引=0的元素赋值为字符d
mlist[0] = 'd'
print(mlist)
# 打印结果是 ['d', 'b', 'c']
需要注意的是,**不要给超出列表范围的索引位置赋值,**这样会出现错误。比如mlist[3] = ‘d’,运行时就会出现list assignment index out of range错误 这个错误就类似于Java中的数组越界异常。
Traceback (most recent call last):
File "/Users/admin/PycharmProjects/python/python01/start.py", line 10, in <module>
mlist[3] = 'd'
IndexError: list assignment index out of range
删除列表元素: 删除列表元素的操作也很简单,使用del即可。
# 删除列表元素
del mlist[2]
print(mlist)
03. 列表的方法
方法名 | 作用 | 说明 |
---|---|---|
append | 将参数附加到列表末尾 | 修改原来的列表,不会产生新的列表 |
clear | 清空列表 | 清空原来的列表,也不会产生新的列表 |
copy | 产生原列表的副本,并将新列表指向这个副本 | 对新列表修改不会影响原来的列表 |
count | 某一个元素在列表中出现的次数 | 无 |
extend | 将一个序列添加到另一个序列的末尾 | 将修改被拓展的序列,这一点不同于常规的序列拼接 |
index | 返回元素第一次在列表中出现的位置 | 搜索列表中没有的元素时会出现错误提示 |
insert | 在指定位置插入元素 | 也可以使用切片赋值来达到同样的效果 |
pop | 删除指定位置的元素并且返回这个元素 | 唯一既修改列表又返回非None值的方法 |
remove | 删除列表中的指定内容 | 如果这个内容在列表中出现了多次,则只删除第一个 |
reverse | 对列表按照位置倒序排列 | 会修改列表,但是不返回任何值 |
sort | 对列表进行排序 | 会修改列表,但是不返回任何值,并且要求列表内容类型一致 |
列表的操作简单介绍到这里,下一篇介绍元组