Python--基本的对象类型(字典_可变的数据类型)

1.1.7字典

以下方法均在python解释器中进行了测试,读者复制代码时,记得去掉注释符。

#!/usr/bin/env  python
# -*- coding: utf-8 -*-
# ******************通过dict类创建的对象******************
# dict 类 字典
# 1:字典的格式
# di = {"name":"ae",123:"23",True:12,(12,34):"qq"}
# print(di)

# 2:字典中的元素用花括号括起来,其中的元素由键值对组成,键keys,值valuse
# 字典的"键"只能是不可变的对象,比如数字,字符串,元组,布尔值,而且键不能重复,如果重复则只会显示第一个键值对;
# 字典的"值"可以是任意元素,值可以重复
# 注意:字典中的元素是无序的,所以不能进行切片操作

# # 3:创建字典
# di1 = {"name":"ae",123:"23",True:12,(12,34):"qq"}           #1:直接创建
# li1 = [("name","qingyu"),["age","20"]]    #元组和列表都可以,但是必须大于2项
# di2 = dict(tu)        #2:利用dict()函数构建字典
# di3 = dict(name = "qingyu",age = 12,a = [11,22,33,44])      #2:键是字符串,但是不用带引号,值如果是字符串需要带引号
# print(di1,di2,di3,sep = "\n")
# x = ["name","age"]
# y = ["qingyu",20]
# di4 = dict(zip(x,y))                         #3:使用zip函数将名/值列表链接在一起,来创建字典
# print(di4)
# di5 = dict.fromkeys(["11","22","33"],"ae")   #4:根据序列来创建字典,并指定统一的值;
# di6 = dict.fromkeys("qwer",11)               #注意:formkeys中的是可迭代的键
# di7 = dict.fromkeys(("11","22","33",),"ae")
# print(di5,di6,di7,sep = "\n")

# 4:通过索引找到元素,索引的是键;字典支持del删除键值对
# di = {11:"22","qwer":"skill",22:[112,113,"qw",{1:"ae",2:"qingyu",3:45}]}
# print(di[22][3][2])
# print(di)
# del di[22][3][2]
# print(di)

# 5:字典是可迭代对象,可以通过for循环遍历
# di = {"a1":"qwer","k2":111,3:[11,22,33]}
# for i1 in di:        #默认是打印的键
#     print(i1)
# for i2 in di.keys():    #打印键
#     print(i2)
#     print(di[i2])       #索引打印值
# for i3 in di.values():  #打印值
#     print(i3)
# for i4 in di.items():  #打印键值对,会将键值对放在元组里
#     print(i4)
# for x,y in di.items():  #打印键值对
#     print(x,y)

# 其他:in和not in 可以判断键是否在字典中;len()求字典的长度等

# ******************dict类中提供的方法******************
# 1:clear方法:清空元素
# di = {"a1":"qwer","k2":111,3:[11,22,33]}
# print(di.clear())       #返回值是None

# 2:copy方法:浅拷贝,类似于列表的浅拷贝,只能拷贝一级元素
# di1 = {"a1":"qwer","k2":111,3:[11,22,33]}
# di2 = di1.copy()        # 浅拷贝如果有嵌套,嵌套内容的更改会同时影响到拷贝方和被拷贝方,因为指向同一个地址
# print(di2)

# 3:fromkeys方法:通过序列创建字典,并统一指定值;
# di1 = dict.fromkeys(["11","22","33"],"ae")
# di2 = dict.fromkeys("qwer",11)
# di3 = dict.fromkeys(("11","22","33",),"ae")
# print(di1,di2,di3,sep = "\n")
# di4 = dict.fromkeys(("q",[1,2],),11)    #这种情况会创建失败,因为[1,2]是可哈希的
# print(di4)                              #注意:formkeys中的是可迭代的键

# 4:get方法:根据键获取值,键不存在时,可以指定默认值,默认值为None
# di = {"a1":"qwer","k2":111,3:[11,22,33]}
# a1 = di.get('k1',111111)
# a2 = di.get("k2")
# a3 = di.get("k3")
# print(a1,a2,a3)

# 5:keys方法,valuse方法,items方法
# di = {"a1":"qwer","k2":111,3:[11,22,33]}
# for i1 in di:        #默认是打印的键
#     print(i1)
# for i2 in di.keys():    #打印键
#     print(i2)
#     print(di[i2])       #索引打印值
# for i3 in di.values():  #打印值
#     print(i3)
# for i4 in di.items():  #打印键值对,会将键值对放在元组里
#     print(i4)
# for x,y in di.items():  #打印键值对
#     print(x,y)

# 6:pop方法:按照键来删除键值对,并获取键值对中的值
# di = {"a1":"qwer","k2":111,3:[11,22,33]}
# a1 = di.pop("a1")
# print(di,a1)

# 7:popitem方法:从末尾删除键值对,并返回键和值
# di = {"a1":"qwer","k2":111,3:[11,22,33]}
# a = di.popitem()
# print(a)
# di = {"a1":"qwer","k2":111,3:[11,22,33]}
# x,y = di.popitem()
# print(x,y)

# # 8:setdefault方法:设置值,如果,将会添加键并将值设为默认值;
# di = {"a1":"qwer","k2":111,3:[11,22,33]}
# a1 = di.setdefault('k1',111111)         #键不存在于字典中,添加键并将值设为111111;
# print(di)
# a2 = di.setdefault("k2")                #如果键存在的话,会获取值
# print(di)
# a3 = di.setdefault("k3")                #键不存在于字典中,设置默认值None
# print(di)
# print(a1,a2,a3)

# 9:update方法:把字典2中的键值对更新到字典1中去
# di1 = {"k1":"q","k2":"w",3:"e",4:"r"}
# print(di1)
# di2 = {"k1":"a","k2":"s","k3":3333}
# di1.update(di2)         #若键不存在,则在末尾追加键值对
# print(di1)
字典的常用方法

 

posted @ 2019-10-10 19:40  青隅  阅读(286)  评论(0编辑  收藏  举报