9月11日字典数据类型内置方法

字典数据类型内置方法

1、作用:对于值添加描述信息使用字典

2.定义方式:由键(key)和值(value)成对组成,整个字典由大括号{}括起来,里面的键和值中间以冒号(:)隔开,项之间用逗号隔开

格式:字典={key1:value1,key2 : value2}

dict={'name':'hanyingshuo','age':17,'height':170,'hobby_list':['swimming','play','shopping']}

字典里面可以包含列表

3、内置方法

1、按key取值

格式:print(字典['key'])

dict={'name':'hanyingshuo','age':17,'height':170,'hobby_list':['swimming','play','shopping']}
print(dict['name'])#按key取值,key相当于一个容器而它的值相当于它的内在
dict['name']='蜀道山'#将name内值进行修改
print(dict)

key即可以取值也可以修改值

2、len()长度

dict={'name':'hanyingshuo','age':17,'height':170,'hobby_list':['swimming','play','shopping']}
print(len(dict))
dict1=[1,2,3,4,5,6]

作用:用来看该数据类型的长度

3、in/not in

格式:print('key' in/not in 字典)

dict={'name':'hanyingshuo','age':17,'height':170,'hobby_list':['swimming','play','shopping']}
print('name' in dict)#因为字典里面有key的名字为name所以返回True
print('速度' in dict)#因为字典里面没有key的名字为速度所以返回False
print('name' not in dict)#因为字典里面有key的名字为name所以返回False
print('速度' not in dict)#因为字典里面没有key的名字为速度所以返回True

作用:用于判断该key是否属于该字典内的key

4、for循环

dict={'name':'hanyingshuo','age':17,'height':170,'hobby_list':['swimming','play','shopping']}
for i in dict:
    print(i)

这里的for循环只能让key的名称进行打印

5.keys()/values()/items()(items用的最多,一般和解压缩一起用)

作用:keys()只取字典里的键;values()只取字典的值,items()以元组的形式打印键和值

格式:字典.keys();字典.values();字典.items()

应用场所:for循环中取想要的数据

dict={'name':'hanyingshuo','age':17,'height':170,'hobby_list':['swimming','play','shopping']}
print(dict.keys())#keys表示只打印key本身
print(dict.values())#values表示只打印key的值
print(dict.items())#items将字典里面的都打印 

特别的一点keys()/values()/items()得到的结果可以用列表的方式打印出来

dict={'name':'hanyingshuo','age':17,'height':170,'hobby_list':['swimming','play','shopping']}
print(list(dict.keys()))#keys表示只打印key本身
print(list(dict.values()))#values表示只打印key的值
print(list(dict.items()))#items将字典里面的都打印

从上面知道格式为:print(list(字典名.keys()/values()/items()))

6、get()获取

格式:字典名.get('key')

zidian={'name':'jocker','aihao':['打扑克牌','打台球']}
print(zidian.get('name'))#将此name所对应的值获取并打印
print(zidian.get('shoppin'))#因为字典里没有名为shopping的key所以返回None
print(zidian.get('aihao'))#因为才key的值是列表所以返回是以列表返回

7、setdefault()加值

格式:字典名.setdefault('key',value)

zidian={'name':'jocker','aihao':['打扑克牌','打台球']}
zidian.setdefault('songjunwan',1314)
zidian.setdefault('高手',['气功','降龙十八掌'])#以列表的形式进行添加
zidian.setdefault('songjunwan',1314)#因为里面有了,所以无法追加该值
print(zidian)

8、copy()复制

格式:字典名.copy()

zidian={'name':'jocker','height':175,'aihao':['豪车','数钱','辣条','可乐']}
print(zidian)
print(zidian.copy())#此处进行复制

作用:进行复制

特别的点copy()如果提前打印并赋值给新的列表可以不受字典修改的影响

zidian={'name':'jocker','aihao':['打扑克牌','打台球']}
zidian_s=zidian.copy()
zidian['name']='songjunwan'
print(zidian)
print(zidian_s)

9、pop()移除字典中一个key和它的value

格式:字典.pop('key')

zidian={'name':'jocker','height':180,'tizhong':50,'aihao':'swimming'}
zidian.pop('name')#将名为name的key和它所包含的值一同删除
zidian.pop('height')#将名为height的key和它所包含的值一同删除 
print(zidian)

10、popitem()移除

格式:字典名.popitem()

zidian={'name':'jocker','height':180,'tizhong':50,'aihao':'swimming'}
zidian.popitem()#将该字典中索引为-1的移除
zidian.popitem()#将目前字典中索引为-1的移除
print(zidian)

注意的一点pop()和popitem()的作用是差不多的,但popitem只能删除字典的最后,不像pop()可以自己来确定删除的对象

11、clear()清除

格式:字典名.clear()

zidian={'name':'jocker','height':180,'tizhong':50,'aihao':'swimming'}
zidian.clear()#将上面字典进行的清除
print(zidian)

12、update()作用和列表里的extend()的用法相似

格式:字典名.update([需要添加字典or键值对元组序列])

zidian1={'name':'jun','height':'180','aihao':'yuanshen'}
zidian1.update({'tizhon':180})#将里面的键和值都添加到zidian1
print(zidian1)

update()有一个和extend()不一样的地方:当添加的键值或字典添加到一个字典时发现里面有一样的键但是值不一样时,原字典里面的这个值会被修改

添加键值(键相同值不相同):

zidian1={'name':'jun','height':'180','aihao':'yuanshen'}
zidian1.update({'height':10})#因为zidian1这个字典里面有height这个key但是值不是10所以原height的值会被修改成10
print(zidian1)

添加字典(键值相同值不相同)

s={'name':'jocker','height':180,'tizhong':50,'aihao':'swimming'}
zidian1={'name':'jun','height':'180','aihao':'yuanshen'}
zidian1.update(s)
print(zidian1)

13、fromkeys()快速生成字典

格式:字典名.fromkeys(seq,val);seq是所要创建的键的列表,val为seq的值

zidian={}
print(zidian.fromkeys([1,2,3,4,5,6],54188))

14、items()的作用将字典中每对键(key)和值(value)组成元组,并把这些元组放在列表中返回

格式:字典名.items()

zidian={'name':'hys','age':16}
print(zidian.items())#结果为dict_items([('name', 'hys'), ('age', 16)])

4、存一个值or多个值:多个值

5、有序or无序:无序

6、可变or不可变:可变

7、特别的例子

1、例子1将奖品放入空字典里面

jiangping={}
get=input('请输入你需要放入的奖品')#这里是输入需要放入到字典里面key的名称
if get in jiangping:
    jiangping[get]+=1#这里是利用key取值的方式来给添加进来的key的数量进行添加
else:
    jiangping[get]=1#当字典里面有值时才有用,此时这串代码是无用的
print(jiangping)

2、例子2将奖品拿出来

jiangping={'小丑头套':10,'波音747':10,'盔甲':5}
get=input('请输入你需要拿的奖品')
if get in jiangping:
    jiangping[get]-=1
else:
    jiangping[get]=1#这里是当需要拿的奖品不在字典里面是进行添加
print(jiangping)

上面的两个例子利用了key取值的用法

posted @ 2023-09-11 20:40  scxlzb  阅读(64)  评论(0)    收藏  举报