集合set,字典dict

集合set

""" 特点: 无序,自动去重 """

定义一个集合

setvar = {"刘德华","郭富城","张学友","王文"}
print(setvar , type(setvar) )

1.集合无序

# 获取集合中的元素可以么? 不可以
 res = setvar[0] error
 print(res)
# 修改集合中的元素么? 不可以
 setvar[0] = "abc" error

2.自动去重

setvar = {"刘德华","郭富城","张学友","王文","王文","王文"}
print(setvar)

3.定义一个空的集合

setvar = {}
setvar = set()
print(setvar , type(setvar))

字典dict

"""
特点: 键值对存储的数据,表面上有序,实际上无序
语法: dictvar = {键1:值1 , 键2:值2, 键3:值3 ... }
字典的键: 推荐大家用变量命名的字符串进行使用

字典的键 和 集合的值 有数据类型上的要求
如下类型才可以:  不可变数据(可哈希的数据类型)
Number(int,float,bool,complex),str,tuple

不允许的类型 可变数据(不可哈希的数据类型)
list,set,dict

但凡提到哈希算法(hash),都是典型的无序特征
目的: 为了更加均匀的把数据分配到内存中,底层用了取模类似的算法;

python3.6版本,对字典做了优化,存储数据的时候用的哈希算法
但是在拿出数据的时候,重新按照定义的顺序做了排序
所以看起来有序,实际上无序
"""

1.定义一个空的字典

dictvar = {}
print(dictvar, type(dictvar))

2.定义一个普通的字典

dictvar = {"top":"程咬金" , "middle":"安其拉" , "bottom":"后裔" , "jungle":"李白" , "support":"宝蓝"}

3.获取字典的值

res = dictvar["top"]
print(res)

4.修改字典的值

dictvar["jungle"] = "乐言"
print(dictvar)

字典的键和集合的值有一定的要求

dictvar = {3:"aaa",False:"bbb",9+3j:"ccc",3.13:"ddd",(1,2,3):"fff","中文":"zzz"}
res = dictvar[(1,2,3)]
print(res)
print(dictvar)
 dictvar = {[1,2,3]:"abc"} error # TypeError: unhashable type: 'list'
 setvar = {"a",1,{"a":1,"b":2}} error  # TypeError: unhashable type: 'dict'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值