List:列表有若干个元素,元素可以是任意对象,元素有顺序,可以使用索引和迭代,使用线性结构,使用[ ]进行描述,在内存中的空间是连续的,每个元素在内存中的空间是一样的………列表是可变的,列表不能一开始就定义大小,列表索引不可以超界
列表索引l.index(),从左向右搜索,发现第一个匹配的,自动返回搜索的值的索引;匹配不到,抛出异常ValueError
l.count()返回列表中匹配的值的次数
时间复杂度:index和count方法都是O(n)随着列表数据规模的增大,而效率下降
Insert(index,object)->None,时间复杂度也是O(n),索引可超界,超越上界,尾部追加,超越下界,头部追加: append()时间复杂度为O(1)
内存模型比方法重要
几种序列的区别:list可以进行中间插队,元素可进行挪动;
queue不能进行中间插队,只能在开头或者结尾加入或者拿出元素,也可进行索引
stack:只能后进先出(栈,类似于落盘子)
链表:手拉手模型
可迭代和可索引是两个概念,是不一样的
方法:
index(value,[start,[stop]]):通过value对列表进行查找,匹配第一个立即返回索引,匹配不到,抛出异常
list[index]=value: 对列表中的索引项元素进行修改
list.append(object): 尾部进行元素追加,返回none,没有新列表生成,就地修改
list.insert(index,object): 在指定位置插入元素,返回值为none,没有新列表产生,就地修改,超越上界,尾部追加,超越下界,头部追加
list.extend(iteratable): 将可迭代对象追加进来,就地修改,返回值为none
+ : 将两个列表链接起来,产生新列表,原列表不变,本质上调用add方
*: 重复操作。将本列表元素重复n次,返回新的列表
list.remove(value): 从左到右查找第一个匹配value的值,移除该元素,返回none,就地修改
list.pop([index]): 不指定索引index时从尾部弹出一个元素,指定索引index时,就从索引出弹出一个元素,索引超界抛出indexerror错误
l.clear():清除列表所有元素,剩下一个空列表
l.reverse():将列表元素进行反转,返回none,就地修改
l.sort(key=functionname,reverse=False) :对列表元素进行排序,就地修改,默认升序;reverse为True,反转,降序;key为一个函数,指定如何排序
附:
Round() —–四舍六入,五取偶(正负一样,不用考虑正负)
Round(-2.5,-2.5001)—-(-2,-3)
Print中取整计算//按floor计算
Floor计算结果取地板
Ceil计算结果取天花板
Math.floor(2.5)—–2
Math.floor(-2.5)—–(-3)
Math.ceil(2.5)—–(3)
Math.ceil(-2.5)—-(-2)
Int(2.5)——(2)
Int(-2.5)——(-2)
二进制bin () 返回字符串
八进制oct()返回字符串
十六进制hex()返回字符串
Math.Factorial(n)整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=1×2×3×…×n。
类型判断:
Type’a’==str
Isinstance(123,int)返回true
Isinstance(123,(int,float,complax))返回true
Type(1+false)返回int;bool为int的子类(其中存在数值类型的隐式转换)
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92880