# set集合类型 """ 集合可以交差并补 集合是无序的 集合是可以自动去重的 """ set_var1 = {"111", "222", "333", "444", 12, 231.211, "111", "222"} print(set_var1) # {'111', '444', 231.211, '222', 12, '333'} # 获取集合的元素,索引获取 --err # res = set_var1[0] # 'set' object is not subscriptable # print(res) # 修改集合的元素,索引修改 --err # set_var1[0] = "123" # 'set' object does not support item assignment # print(set_var1) # 定义一个空集合 set_var2 = {} # 错 print(set_var2, type(set_var2)) # {} <class 'dict'> # 可以看出这个是个字典类型,并不是集合类型 # 定义空集合 -- 唯一方式 set_var2 = set(); print(set_var2, type(set_var2)) # set() <class 'set'> # dict 字典类型 """ 键值对存储的数据 dict_var = {键1:值1, 键2:值2, 键3:值4} """ dict_var1 = {"top":"the shy", "middle":"rookie", "bottom":"jackLove"} print(type(dict_var1)) # <class 'dict'> # 获取字典中的值 res = dict_var1["top"] print(res) # the shy res = dict_var1.get("top") print(res) # the shy # 修改字典中的值 dict_var1["top"] = "the box" print(dict_var1) # {'top': 'the box', 'middle': 'rookie', 'bottom': 'jackLove'} # 定义一个空字典 dict_var2 = {} print(type(dict_var2)) # <class 'dict'> # set和dict注意事项 """ 字典的键和集合的值 有数据类型上的要求: (允许的类型范围): 不可变的类型 : Number str tuple (不允许的类型范围): 可变类型 : list set dict 3.6版本之前,完全无序, 3.6版本之后,存储的时候,保留了字典定义的字面顺序,在获取内存中数据时 重新按照字面顺序做了排序,所以看起来有序,实际上存储时还是无序 哈希算法的提出目的是让数据尽量均匀的在内存当中分配,以减少哈希碰撞,提升存储分配的效率 哈希算法一定是无序的散列,所以集合 和 字典都是无序 字典的 键有要求,值没要求 字典的值可以任意换掉,但是键不可以 """ dict_var3 = {1:"你是?", 4.89:111, False: 33, 3+90j:"王文", (1,2,3,4):"gogo"} print(dict_var3) # {1: '你是?', 4.89: 111, False: 33, (3+90j): '王文', (1, 2, 3, 4): 'gogo'} # dict_var4 = {[1,2,3] : 123} # unhashable type: 'list' # print(dict_var4)
集合与字典入门
于 2024-09-11 23:02:18 首次发布