python内置数据结构-List

分类
数值型:
1.int :python3的int就是长整型,且没有大小限制,受限于内存区域的大小
2.float :由整数部分和小数部分组成,支持十进制和科学计数法表示,C的双精度型实现
3.complex :有实数和虚数部分组成,实数和虚数部分都是浮点数
4.bool :int的子类,仅有2个实例True、Flase对应1和0 ,可以和整数直接运算
序列对象:
1.字符串 str
2.列表 list
3.tuple
键值对:
集合 set
字典 dict
类型转换:
int(x) 返回一个整数
float(x)返回一个浮点数
complex(x)、complex(x,y) 返回一个复数
bool(x)返回布尔值

数字的处理函数
round(),四舍六入五取偶
floor()向下取整、ceil()向上取整
int()取整数部分
// 整除且向下取整
min()取最小值
max()取最大值
pow(x,y)等于x**y
math.sqrt()
进制函数,返回的是字符串:
bin()
oct()
hex()

math.pi 圆周率
math.e 自如常数

类型判断:
type(obj), 返回类型,而不是字符串
isinstance(obj,class_or_tuple),返回布尔值

列表list

列表list 、链表
queue、stack
一个列表,一个整齐的队伍
列表内的个体称作元素,由若干元素组成列表
元素可以是任意对象(数字、字符串、对象、列表等)
列表内元素有顺序,可以使用索引
线性的数据结构
使用[ ]表示

注意:列表是可变的

列表索引访问

索引,也称下标:list[ ]
正索引:从左至右,从0开始,为列表中每一个元素编号
负索引:从右至左,从-1开始
正负索引不可以超界,超界会引发indexError

列表查询:
一、index(value,[start[stop]])

   通过值value,从指定区间查找列表内的元素是否匹配
   匹配第一个就立即返回索引
   匹配不到,抛出异常ValueError

二、count(value)

  返回列表中匹配value的次数

三、len() 时间复杂度为O(1)

   返回列表中元素的个数

时间复杂度:index和count都是O(n),会随着列表规模的增大,而效率下降

列表 增加,插入元素

1.append(iteratable) -> None
将可迭代的对象追加进来,返回None
返回None就意味着没有新的列表产生,就地修改
时间复杂度为O(1)
2.insert(index,object) -> None
在指定的索引index处插入元素object
返回None就意味着没有新的列表产生,就地修改
时间复杂度为O(n)
索引超界
超越上界,尾部追加
超越下界,头部追加
3.extend(iteratable) -> None
将可迭代的对象追加进来,返回None
就地修改
4.+ ->list
连接,将两个列表连接起来
产生新的列表,原列表不变
5.*n -> list
重复,将本列表重复n次,返回新的列表

列表删除元素

1.remove(value) -> None
从左至右查找第一个匹配value的值,移除该元素,返回None
就地修改
时间复杂度O(n)
2.pop([index]) -> item
不指定索引index,就从列表尾部弹出一个元素
指定索引index,就从索引处弹出一个元素,索引超界抛出
index error错误
时间复杂度O(1)
3.clear() -> None
清除列表所有元素,剩下一个空列表
时间复杂度O(1)

列表其他操作

1.reverse() -> None
将列表元素反转,返回None
就地修改
2.sort(key=None,reverse=False) -> None
对列表元素进行排序,就地修改,默认升序
reverse=True,为降序
key一个函数,指定key如何排序
lst.sort(key=funtion)
3.in 查一个元素是否在列表中 -> bool
1 in [1,2]

列表复制
1.copy() ->List
shadow copy返回一个新的列表
shadow copy称为影子拷贝,也叫浅拷贝,遇到引用类型,只是复制一个引用而已
copy.deepcopy深拷贝

随机数
random模块
1.ranint(a,b)返回[a,b]之间的整数
2.choice(seq)从非空序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。random.choice([1,3,5,7])
3.randrange([start],stop,[step])从指定范围内,按指定技术递增的集合中获得一个随机数,基数缺省值为1.random.randrange(1,7,2)
4.random.shuffle(list) -> None 就地打乱元素
5.sample(population,k)从样本空间或总体(序列或者集合类型)中随机k个不同的元素,返回一个新的列表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值