一、字典dict
字典是Python唯一的映射类型,区别序列类型和基本数据类型。
1、创建,下面几种方式都可以创建字典,注意,A={}创建的是空字典,而不是集合。
这里,dict是工厂函数,同样的,list、str、tuple也是工厂函数。要注意,dict对键的要求较为严格,必须是可哈希对象。
2、索引
因为字典是无序的,所以不能通过地址索引。
dict.keys(),dict.value(),dict.items()返回对应的值。
dict.get(键)可以索引到需要的键值。
3、成员关系
in,not in,因为哈希的原因比序列的效率高。
4、增删
dict[]=键值就行,删除可以利用内建的clear(),pop()函数。
未解决问题:
工厂函数?
哈希和dict的关系?
哈希冲突?
二、集合set
1、创建
利用大括号set={1,2,3},也可以利用工厂函数set(),里面的元素是唯一的,重复的在创建后也会自动剔除。
注意,set中也不能添加list/dict类型的元素,报错 unhashable type: 'set',好像也和哈希有关?
2、索引
set也是无序存储的,所以好像无法索引?
目前只知道可以利用for in 遍历出来。
3、增删
内嵌函数 .add() .remove()
4、frozenset
固定的set,创建后就不能修改,没有add、remove操作,可以作键。