码迷,mamicode.com
首页 > 编程语言 > 详细

Python中list总结

时间:2018-08-05 00:29:26      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:error   数据   code   括号   eve   链接   indexer   移除   修改   

1:列表 list的定义:
一个连续的,排列有序的数列,由若干个元素组成,元素可以是任意对象(数字、字符串,对象,列表),元素可以使用索引查找,线性的数据结构。使用[ ]表示。列表是可变的,是可迭代对象。

列表具体定义
l=[ ] (空列表) l=list(iterable)
列表不能一开始就定义大小。指定大小会报类型错误(TypeError)。

2:列表,链表的差异:

列表list(使用index查找,找的代价小,插入比较慢),
链表 (查找的比较慢,插入比较方便),
具体花费的时间需要根据具体的使用情况权衡。

3:queue ,stack的差异

queue(队列:先进先出的队列)
stack(栈:先进后出)

4:列表的索引访问

索引,也叫下标
正索引:从左至右,从0开始,为列表中每一个元素编号
负索引:从右至左,从-1开始
正负索引不可以超界,否则引起IndexError
约定:可以认为列表是从左至右排列,左边是头部,右边是尾部,左边是下界,右边是上界

列表通过索引访问。 list[index],index就是索引,使用中括号访问

5:列表的查询方法

index(value,[start,[stop]])通过值查找的。没有查到就抛ValueError , 靠值遍历的方式
通过值value,从指定的范围内查找列表内的元素是否匹配
匹配第一个就立即返回索引,匹配不到,就抛出异常ValueError
count(value) 靠值遍历的方式 没有查找到数值不抛出异常。返回列表中匹配value的次数

时间复杂度 遍历查找的都是O(n),index和count方法都是O(n)

len () 统计列表的长度方法

6:列表元素的修改方法

list[index]=value   索引不要超界

列表增加、插入元素

append(object)--->None 列表尾部追加元素,返回None
返回None就意味着没有新的列表产生,直接修改列表。 时间复杂度是O(1)
insert(index,object)----->None 在指定的索引index处插入元素object
返回None就意味着没有新的列表产生,直接修改列表。时间复杂度是O(n)

注意(使用insert()时): 超越上界,尾部追加。 超越下届,头部追加

extend(iteratable)--->none 将可迭代对象的元素追加进来,返回None 。直接修改列表。
时间复杂度是O(1)

+----->list 创建一个没有引用的新对象,之后会被垃圾回收
链接操作,将两个列表连接起来,原列表不会改变,会产生新的列表
本质上是调用——add_()方法

------>list 重复操作,将本列表元素重复n次,放回新的列表 列表重复,如果设置数列里面也是数列,会遇到修改一 个,其他重复的元素也跟着修改。

7:列表的删除元素
remove(value)--->None 从左至右查找第一个匹配的value的值,移除该元素,返回None
时间复杂度是O(n) ,需要一个一个查找

pop([index])-->item
不指定索引index,就从列表尾部弹出一个元素,这种情况时间复杂度为:O(1)
指定索引index,就从索引出弹出一个元素,索引超界会抛出IndexError错误

clear()---None 清除列表所有元素,剩下一个空列表

8:列表的其他操作
reverse()-->None reverse将列表的元素反转,放回None 直接修改列表。

sort(key=None,reverse=false)-->None
对列表元素进行排序,直接修改列表,默认升序。reverse为True,反转,降序
key一个函数,指定Key如何排序 lst.sort(key=functionname)

in 判断一个列表是否属于另一个列表

Python中list总结

标签:error   数据   code   括号   eve   链接   indexer   移除   修改   

原文地址:http://blog.51cto.com/1502606/2154789

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!