标签:应用 ons lis 占用 属性 不可变类 性能 扩容 列表
一 、 元祖和列表
1.元祖和列表的性能分析
元祖的性能要优于列表,元祖是固定长度不可变,列表是可变的,在分配内存的时候
列表会占用更多的内存资源,应为列表需要在原有的基础上在继续扩容,而元祖在创建的时候
大小就是固定的因而占用的内存资源更少
timeit 时间模块,可以用来计算列表跟元祖创建使用的时间
例子:timeit a = [1,2,3]
def fun():
print("你好")
timeit 模块
1.可以计算函数、列表、字典、元祖的执行时间
a = timeit.timeit(fun,number=100)
fun这个函数执行100次消耗的时间
2.命名元祖
命名元祖:给元祖加上像字典一样的键
import collections
# 设定命名元祖的类型
student_info = collections.namedtuple("student_info",["name","age","gender"])
# 给元祖赋值,不能多也不能少
tu = student_info("吃瓜",10,"男")
# tu 这个变量的类型是class 直接 . 他设定的属性就可以输出对应的值
print(tu.gender)
二、字典和集合的原理和应用
1.散列类型的存储过程 散列:就是无序的数据类型
set() 集合
1.集合会自动去重,列表没有键
2.常见的使用列表对集合去重: list = list(set(list))
3.集合是可变类型的数据,无序的
4.空集合 se = set() 表示空集合,通过add("值")方法可以往集合里面添加元素
remove("值")删除元素,不管是添加还是删除一次只能执行一条
5.update({1,2,3})这个方法可以往集合里面一次添加多条数据,使用花括号括起来,不然会报错
6.clear() 清空集合里面的数据
7.copy() 复制
8.集合不能存储可变元素,列表跟字典
9.可变元素不能进行hash 操作,不可变类型才可以进行hash操作
注意:py的数据类型主要分为三类
1.数值
2.序列:字符串、列表、元祖 特点:内部元素是有序的
3.散列:字典、集合 特点:内部元素是无序的
2.字典查找值的过程
dict 跟set实现原理都一样的,都是将实际值存储到list中,dict 通过hash函数操作的是
其key ,而对于set直接操作它的元素
标签:应用 ons lis 占用 属性 不可变类 性能 扩容 列表
原文地址:https://www.cnblogs.com/666666pingzi/p/10835924.html