邢玮

开发博客

谁不想要一个自娱自乐的角落?


python学习笔记(三)

基本列表操作

修改列表

>>> 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]

到此列表的基本知识就学习完成了🎉🎉🎉

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦