第三天(建立字典)

# ### 集合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'


# #######第二遍

# ### 集合set (作用:交差并补)
"""特点: 无序, 自动去重"""
# 定义一个集合
setvar = {"王振","王振2","王振3","王振4"}
print(setvar,type(setvar))


# 1.集合无序
# 获取集合中的元素可以吗?   不可以的
# res = setvar[1]  error
# print(res)
# 修改集合中的元素吗?   不可以的
# setvar[1] = "abc"  error

# 2.自动去重
setvar = {"王振","王振2","王振3","王振4","王振2","王振4"}
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'

res = dictvar[3]
print(res)







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值