python小白入门基础(七:集合与字典)

# set 集合 作用:用作交差并补操作
'''不可获取, 无序,自动去重'''

setvar = {"周杰伦","刘亦菲","胡歌"}
print(setvar,type(setvar))

# 不可以获取集合里的值
# print(setvar[0]) 显示error

#不可以修改集合里的值
# print(setvar[2])="赵丽颖" 显示error

#可以自动去重
setvar = {"周杰伦","刘亦菲","胡歌","胡歌","刘亦菲"}
print(setvar)

#定义一个空集合
setvar = {} #这种定义的是字典
print(setvar,type(setvar))

#定义空集合
setvar = set()
print(setvar,type(setvar))


# dict 字典类型 {}
'''由键值对组成来存储数据,本质看起来无序,实则有序'''
"""
#语法:
dictvar = {"key1":"value1","key2":"value2"}
左边是键右边是值,键值之间用冒号隔开,
键值对与键值对之间又逗号,隔开
3.6版本之前都是 字典和集合都是无序的
3.6版本之后,把字典的字面顺序记录下来,当从内存拿数据的时候,
根据字面顺序重新排序,所以看起来像有序,但本质上无序

"""

dictvar = {"name":"李云飞","age":"18","stu":"帅哥"}
print(dictvar,type(dictvar))

#获取(查)字典里面的值
res = dictvar["age"]
print(res)

#修改字典里面的值:
dictvar["name"] = "王彬"
print(dictvar)
dictvar.update({'car':'特斯拉'})
'''当update中的字典没有键值对时就添加进来,如果有就修改
里边对应的值'''
print(dictvar)

#字典中的键值对是由哈希算法算出来的
'''只有是使用了哈希算法,那么这个数据就是散列无序的,
因为要把数据均匀的分布存储在内存当中,减少哈希碰撞'''

"""

可哈希数据:
可哈希的数据 (不可变的数据):Number(int float bool complex) str tuple
不可哈希的数据 (可变的数据): list set dict
"""

# 如下定义字典的语法是允许的,但是不要使用,定义字典的键,一般按照变量命名的方式定义一个字符串.
dictvar = {123:[2,3.9,True,'王五'],'aaa':'你好','age':'18',(1,2,3):{3,2,8}}
print(dictvar)

# 集合的值也必须可哈西 (不可变数据)
'''但凡是不可哈希的数据都不能作为集合的值'''
# setvar = {1,9,"abc",(1,2,3),[1,2,3]} error
# setvar = {1,9,"abc",(1,2,3,[1,2,3]) } error
print(setvar)

posted on 2020-09-04 20:27  python小达人  阅读(269)  评论(0编辑  收藏  举报