本次笔记针对原书第6章节
列表
列表类型 内建函数:
list.append(obj) 添加一个对象 list.count(obj) 返回一个对象在列表中出现的次数
list.extend(seq) 把序列seq的内容添加到;列表中
list.index(obj,i=0,j=len(list)) list.insert(index,obj)
删除操作 list.pop(index=-1) 根据位置删除 list,.remove(obj)根据对象删除
反转和排序 list.reverse() list.sort(func=None,key=None,reverse = False)
元组
列表和元组是非常相近的容器类型,它们除了一个用园括号,一个用方括号之外似乎看起来没有区别,但是功能上元组和列表有一个很重要的区别,元组是一种不可变类型,它能够做一些列表不能做的事比如做一个字典的key.
最好使用不可变类型变量的一个情况是,如果你在维护一些敏感数据,并且需要把这些数据传递给一个并不了解的函数,这时使用元组会安全很多。而当需要管理动态类型数据集合时,你要把它们创建出来,逐渐地不定期的添加它们,或者有时还要移除一些单个的元素,这就必须使用可变类型对象。
list ()和tuple()函数客厅可以你用一个列表来创建元组,反之亦然。如果你有一个元组变量,但是你要更新对象,可以用 lis()函数得到一个列表变量进行更新。如果你有一个列表变量,并且要把它传递给一个函数,为了保证数据不被破坏,可以使用tuple()函数将其转换为元组
深拷贝
利用copy模块中的deepcopy()函数可以进行深拷贝,copy()进行浅拷贝,深拷贝拷贝后的对象改变数据对被拷贝对象没有影响
字典
1.可以用工厂方法dict()来创建字典,使用内建方法fromkeys() 可以创建一个默认字典
2.可以使用key ()方法 或者 迭代器来遍历访问字典、
3.字典中的键不允许被改变,这是由于如果可以改变将可能发生因为某个变量改变导致键发生了改变,用原来的键将无法访问取出字典中的数据的情况。
由于这个原因,字典中的键必须是可哈希的,所以数字和字符串 或者是只包括数字和字符串的不可变参数的元组可以作为字典的键,但是列表和其它字典不行。
4.cmp() 采用的字典比较算法
字典比较算法按照以下顺序 (优先级从高到低):(1)比较字典长度,即 len(dict1)>len(dict2) => dict1>dict2
(2)比较字典的键 如果两个字典的长度相同,就按字典的键来比较,当 dict1第一个不同的键大于dict2中第一个不同的键,cmp()返回正值
(3)比较字典的值 当 dict1第一个相同的键的值大于dict2中第一个相同的键的值,cmp()返回正值
5.映射类型内建方法:进行创建,删除,更新的方法有 dict.clear(),
dict.fromkey(),
dict.get(key,default= None)
dict.has_key(key)
dict.pop(key[,defaut]) 如果字典中,key存在,删除并且返dict[key],如果没有,返回 default
dict.setdefault(key,default = None) 检查字典中是否含有某键,若有,则取出它的值,否则不存在,返回设置的默认值
dict.update(dict2) 将字典dict2 的键值对添加到字典dict
使用key(),value(),items()方法 获取键,值,键值对的信息