Python内置数据结构
数值型
Int,float,complex,bool
序列对象
字符串:str 列表:list 数组:tuple
键值对
集合:set 字典:dict
数值型
Int,float,complex,bool都是class,1,5.0,2+3j都是对象即示例
Int:python3的int就是长整形,且没有大小限制,受限于内存区域的大小
Float:有整数部分和小数部分组成,实数和虚数组成,支持十进制和科学计数法组成,双精度型。
Complex:有实数部分和虚数组成,实数和虚数都是由浮点数。3+4.2j
bool:int的子类,仅有2实例true,false对应1和0,可以和整数直接运算
类型转换
Int(x)返回一个整数
Float(x)返回一个浮点数
Complex(x),Complex(x,y)返回一个复数
bool(x)返回布尔值,false等价的对象
数字的处理函数
round(),四舍六入取偶
floor()向下取整,ceil()向上取整
Int()取整数部分
//整除且向下取整
math.sqrt()开方
类型判断
type(obj),返回类型,而不是字符串
Instance(obj,class_or_tuple),返回布尔值
列表list
一个队列,一个排列整齐的队伍
列表内的个体称作元素,由若干元素组成列表
元素可以是 任意对象(数字,列表,字符串,对象等)
列表内元素有顺序,可以使用索引
线性的数据结构
可以使用[]表示
列表是可变的
列表list 链表 queue stack的差异
列表可以插入
Queue不可以插入,只能开头和结尾
Stack是覆盖式的,后进先出
链表分散的链表可以随机插入
列表索引访问
索引,也叫下标
正索引:从左到右,从0开始,为列表中的每一个元素编号
负索引:从右到左,从负1开始
正负索引不可以超界,否则引发异常indexerror
为了理解方便,可以认为列表是从左到右排列的,左边是头部,右边是尾部,左边是下界右边是上界
列表通过索引访问
列表查询
Index(value,[start,[stop]])
通过值value,从指定区间查找列表的元素是否匹配
匹配到第一个就立即返回索引
匹配不到就抛出异常valueerror
count(value)
返回列表中匹配的value次数
时间复杂度
Index和count方法都是O(n)
随着列表数据规模的增大,而效率下降
如何返回元素列表的元素个数?如何遍历?如何设计高效?
len()
列表元素修改
list[index] = value
索引不要超界
列表增加,插入元素
append(object)-> none
列表尾部追加元素,返回none
返回none就意味着没有新的列表产生,就地修改
时间复杂度O(1)
Insert(index,pbject)->none
从索引处插入,需要移动位置时间复杂度较高不常用
超越上界,尾部追加。超越下界尾部追加
Extend(iteratale) – > none
将可迭代对象的元素最加进来,返回none
就地修改
+ ->list
链接操作,将两个列表链接起来
产生新的列表,源列表不变
本质上是调用的_add_()方法
* -list
重复操作,将本列表元素重复n次,返回新的列表
列表删除元素,插入元素
remove() -> none
从左到右查找第一个匹配的value的值,移除该元素,返回none
就地修改
效率不高O(n)
pop([index]) -> item
不指定索引的index,就从列表尾部弹出一个元素
指定索引index,就从索引处弹出一个元素,索引超界抛出indexerror错误
时间复杂度O()
clear() -> none
清除列表的所有的元素,剩下一个空列表
列表的其他操作
reversed() -> none
将列表元素反转,返回none
就地修改
sort(key=none,reverse=false) -> none
对列表元素进行排序,就地修改,默认升序
reverse为true,反转,降序
key一个函数,指定key如何排序
In
[3,4]in[1,2,[3,4]]
For x in [1,2,3,4]
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92950