python-列表基本操作和方法及其应用

1.列表的基本操作

针对列表的基本操作除了通用序列操作,还有赋值、插入、删除、排序等 。列表是可变对象类型,因此这些操作都是对原列表的修改,并不生成新的列表

(1)赋值

如果是单个索引,就是单个列表元素的赋值。如果同时给多个列表元素赋值,就可以利用强大的分片功能来赋值。

list是一个常用的类型转换函数。list(string)返回一个列表对象,字符串string的每个字符转换为列表的一个元素。


(2)删除元素

删除列表中指定位置一个或多个元素的操作是;del list【index】。

若要删除整个列表,使用命令:del listname。整个列表删除后,该列表名从命名空间释放,再次引用该列表就会触发异常


2.列表对象的基本方法

列表通过赋值定义后,生成列表对象。对列表 对象,可以直接调用对象内置的方法。

(1)添加元素append 和 extend

append的功能是向列表尾部 添加一个元素。append每次只能向列表中添加一个元素,如果需要在列表尾部添加多个元素,采用extend方法


在通用序列操作中有通过序列相加增长列表的方法。通过序列加法来增加序列元素的数目的方法和extend增长列表的方法不同:列表相加将生成一个新的列表,而extend是对原来列表的扩充,是对原列表的修改,在原地修改,并不生成新的列表。

(2)计数count、检索index和插入对象insert

count的功能是统计某个元素在指定列表中出现的次数。

index的功能是在列表中检索第一个匹配项的位置。若存在该内容,就返回第一个匹配元素在列表中的位置,若该内容不存在,则给出错误信息ValueError。

为避免检索一个不存在的内容,可先通过成员资格检查,当内容存在时再用检索返回具体的位置。

insert是向列表中插入对象的另一种方法。将insert中指定的对象插入到指定位置编号之前。


(3)弹出元素pop

列表是一个有序数据类型,与堆栈有类似之处,因此列表可以用来模拟堆栈。pop方法是将列表一个元素删去的操作。该操作有返回值,返回值就是从列表弹出的元素,但是

del方法没有返回值,这是两者的不同。

pop操作允许指定删除元素的位置,一般的堆栈操作应该满足“先进后出,后进先出”原则,所以pop只能模拟堆栈操作。pop方法中位置编号i是可以缺省的,缺省时,list.pop()表示从列表末尾删除一个元素并返回该值,这时才和堆栈相似了。


(4)移除remove、逆转reverse和排序sort

移除操作执行时首先在列表中检查是否存在要移除的内容,将遇到的第一个匹配项从列表中删除,并对其后面的元素重新编号。移除操作也是在原地修改列表,并没有任何返回值。如果没有找到要匹配的项,则出现数值错误异常。

reverse操作可以把列表中的元素的次序逆转,该方法也是在原地修改列表,无任何返回值。如果想把逆转后的列表生成一个新的列表,不能把reverse的返回值赋给一个列表,

这样只能得到一个空列表。如果要同时保留原列表和逆转后的列表,可先将原列表复制一份再进行逆转。

不能通过赋值语句将列表赋值给另一个列表,因为赋值语句并没有复制列表,只是多了一个指向同一个列表的指针。

sort方法默认情况下是按照元素的升序重新排列原列表的元素。排序也不生成新的列表,是对原列表的修改,所以将列表排序后赋值给另一个列表的操作y=x.sort()后,y将是一个空列表,其逻辑值为None

list.sort(key=None,reverse=False)

sort有两个主要参数,reverse表示是否逆序,reverse为True时实现逆序排序;key是排序的依据,比如要根据列表元素的长度进行排序,可以将长度函数len作为关键字。

key=len

sort的两个参数可以单独使用,也可以一起使用



3.列表的应用

列表可以用于实现堆栈、队列、矩阵等数据结构。基于列表的append和pop方法,通过append从列表末尾添加元素,用不带位置编号的pop操作从列表尾弹出数据,可以很好的模拟堆栈操作


列表嵌套可以构建矩阵。需注意的是列表元素编码都是从0开始的,而矩阵的行列值可能从1开始。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值