- 字典是一种可变容器模型,且可存储任意类型对象。
- 字典由键值(对)构成,格式如:{ key1:value1, key2:value2......}
- 键:唯一的,即key:value1和key: value2不可能同时存在
- 键:必须是不可变的,如:字符串,数字或元组,不能是list等类型
- 值: 可以取任何数据类型
一、创建字典
一般两种方法:
(1)方法1:使用python标准函数dict()
(2)方法2:直接用 { }
1. 创建空字典
d1=dict()
d2={}
2. 创建非空字典
pairs=[("cat",5),("cow",98),("dog",12)]
d1=dict(pairs) #output:{"cat":5,"cow":98,"dog":12}
d2={"cat":10,"cow":100,"dog":9}
二、字典操作
2.1. 单个字典的操作
- len(d):返回字典d的键值对数
- d.copy():创建字典d的浅拷贝
- d.clear():删除字典d的全部键值对
- for key in d:遍历字典d中的全部键
d1={1:[1,2,3,4,5],2:"abdefg"}
print(lend(d)) #output: 2
d2={1:"a"}
d3=d2.copy(d2)
d2[2]="b"
print(d2) #output:2
print(d3) #output:1
d2.clear() #now d2 is an empty dictionary
d={1:"a",2:"b"}
for key in d:
print(key,d[key]) #output: 1 "a" 2 "b"
2.2 字典和键的操作
- key in d:判断字典d中是否有键为key
- key not in d:判断字典d中是否没有键为key
- d[key]:返回字典d中键为key的值,若键为key不存在引发KeyError
- d[key]=value:对字典d赋值key-value键值对,若key已存在,则修改其值为value,若不存在,添加键值对
- get( key [,default] ):获取字典d中键为key的值,若key键不存在,则返回default值,若default未定义,此时返回None
- del d[key]:删除字典d中键为key的键值,若key不存在,引发KeyError
d = { 1:"a", 2:"b" }
print(0 in d) # False
print(1 in d) # True
print("a" in d) # False
print(0 not in d) # True
print(1 not in d) # False
print("a" not in d) # True
print(d[1]) # "a"
print(d[3]) # crash! KeyError
d = { 1:"a", 2:"b" }
d[1]=42
print(d[1]) # 42
d = { 1:"a", 2:"b" }
print(d.get(1)) # "a"
print(d.get(1,42)) # "a"
print(d.get(0)) #None
print(d.get(0,42)) #42
d = { 1:"a", 2:"b" }
print( 1 in d) #True
del d[1]
print( 1 in d) #False
del d[1] #crash! KeyError
2.3 两个字典的操作
- d1.update(d2):更新字典d1,将字典d2中的键值对添加到字典d1中。如果字典d1中的某些键也在字典d2中,则字典d1中这些键的值修改为字典d2中这些键的值
d1 = { 1:"a", 2:"b" }
d2 = { 2:"c", 3:"d" }
d1.update(d2)
d2[4] = "e"
print(d1) # {1:"a",2:"c",3:"d"}
print(d2) # {2:"c",3:"d",4:"e"}