1.dict 字典表 # 字典没有下标
特性
(1) 通过键(key),而非位置偏移(下标索引)访问数据
(2) 可包括任意对象的无序集合
(3) 可变长度,异质,可任意嵌套
(4) 属“可变映射”分类
(5) 对象引用表(Hash Table)
声明
(1){} 空字典表
>>> d = {}
>>> d
{}
(2){key:value}
>>> employee ={"name":"tom","age":20,"salary":3900.00}
>>> employee # 字典表里面的内容是任意对象的无序集合
{'name': 'tom', 'age': 20, 'salary':3900.0} # name是键,“tom”是键值
(1) dict(key=value)
>>> book = dict(title="python入门",author="tom",price=58.00)
>>> book
{'title': 'python入门', 'author': 'tom', 'price': 58.0}# 冒号自动添加
(5)dict([(key.value)],(key,value)) # list列表转换为字典表
>>> list =[("name","tom"),("age",20)]
>>> list
[('name', 'tom'), ('age', 20)]
>>> emp2 = dict(list) # list列表转换为字典表
>>> emp2
{'name': 'tom', 'age': 20}
(6) dict.fromkeys([key1,key2,….])
>>> keys =["name","age","job"]
>>> emp3 = dict.fromkeys(keys)
>>> emp3
{'name': None, 'age': None, 'job': None} # 没有键值,呈现为空对象
常用操作
(1) data[“key”]
>>> emp ={"name":"tom","age":20,"salary":3900.00,"department":"技术部"}
book={"title":"python入门","author":"tom","price":58.00,"publisher":{"address":"北京","tit":"清华大学出版社"}}
(2) keyin data
>>> "name" in emp
True
>>> "Name" in emp
False
>>> "prine" in book
False
>>> book[0] # 不支持索引进行访问
Traceback (most recent call last):
File "<pyshell#49>", line 1, in <module>
book[0]
KeyError: 0
(3) data.get(“key”,”default”)
>>> book["title"] # 通过键来访问值
'python入门'
>>> book["publisher"]["address"] # 通过键访问嵌入式的值
'北京'
>>> book.get("price") # 也可以通过get访问,键错误不会报错
58.0
>>>book.get("qrice","未找到") # 添加'字符',这样没找到键会反馈'未找到'
'未找到'
(4)date.keys( ) 所有键
(5)date.values( ) 所有值
(6) len(data)
keys =["price","colour"]
>>> len(keys)
2
(7) data.copy # dict复制
>>> emp ={"name":"tom","age":20,"salary":3900.00,"department":"技术部"}
>>> c = emp.copy()
>>> c
{'name': 'tom', 'age': 20, 'salary':3900.0, 'department': '技术部'}
(8) 字典表的清除
>>> c.clear()
>>> c
{}
(9)date[key] = value # 键重新赋值
>>> emp
{'name': 'tom', 'age': 20, 'salary':3900.0, 'department': '技术部'}
>>> emp["age"] = 30 # 修改的值存在就修改,不存在就新增
>>> emp
{'name': 'tom', 'age': 30, 'salary':3900.0, 'department': '技术部'}
(10)date.update( date2) # 跟新合并字典表
>>> e = {"job":"vde"}
>>> emp.update(e)
>>> emp
{'name': 'tom', 'age': 30, 'salary':3900.0, 'department': '技术部', 'job': 'vde'}
(11)del data[key] # 删除键
>>> del e["job"]
>>> e
{}