基本列表操作
修改列表
>>> x = [1,1,1]
>>> x[1] = 2
>>> x
[1, 2, 1]
删除元素
掌握del语句:
>>> x = [1,2,3]
>>> del x[1]
>>> x
[1, 3]
给切片赋值
意思就是给一块区域的元素赋值
>>> name = list("Perl")
>>> name
['P', 'e', 'r', 'l']
>>> name[2:] = list('ar')
>>> name
['P', 'e', 'a', 'r']
切片的威力了解一下
>>> number = [1,2,3,4,5]
>>> number[::2] = len(number[::2])*[0]
>>> number
[0, 2, 0, 4, 0]
列表方法
列表也是一个对象,所以列表方法的调用直接在列表后面加.即可.
For example:
>>> l = [1,2,3]
>>> l.append(4)
>>> l
[1, 2, 3, 4]
下面介绍几个常用的方法:
| list.method() | 作用 |
|---|---|
| append() | 在列表末尾就地添加一个元素 |
| clear() | 清空 |
| copy() | 硬复制 |
| count() | 计算指定元素在列表中出现了多少次 |
| extend() | 用一个列表扩展另一个列表,类似于拼接,但比他快 |
| index() | 在列表中查找指定值第一次出现的索引,没有找到会引发异常 |
| insert() | 将一个对象插入列表 |
| pop() | 从列表中弹出元素(不传入索引返回末尾元素) |
| remove() | 删除第一个为指定值的元素(找不到会引发异常) |
| reverse() | 反转列表 |
| reversed() | 返回逆序的迭代器,而不返回列表(比较高级,现在了解即可) |
| sort([key],[reverse]) | 就地排序,key传入一个能输出可供排序的主键数据函数,比如key=len,reverse=true |
| sorted([key],[reverse]) | 返回排序好的列表副本,可选参数同上 |
Q:经过总结,上述函数并不是100%运行时安全的,那么问题来了,如何使index(),remnove()等函数不报错?
A:可以利用成员资格检查in关键字,先检查有没有再调用这些列表/元组方法。
if sth in somelist:
somelist.remove(sth)
else:
......
元组
本来元组和列表的区别是有的,但我实在很懒,暂时就不过多在类型层面加以过多区分了😂只需要知道元组是不可改变的列表就行😂
硬copy和软copy
python中要特别注意硬copy和软copy的区别。
软copy:
===
只关联两个变量,要改一起改,指针指向同一块内存
===
>>> x = [1,2,3,4,5]
>>> y = x
>>> y[1] = 1
>>> y
[1, 1, 3, 4, 5]
>>> x
[1, 1, 3, 4, 5]
硬copy:
===
完全复制一份副本,指针指向两块不同的内存
===
>>> x = [1,2,3,4,5]
>>> y = x.copy()
>>> y[1] = 1
>>> x
[1, 2, 3, 4, 5]
>>> y
[1, 1, 3, 4, 5]
到此列表的基本知识就学习完成了🎉🎉🎉


