集合与字典入门

# 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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值