9、字典

可变容器,可存任意类型对象,以键值对形式存在,键必须唯一且不可以变,如字符串、数字或者元组

1、创建与访问字典

#创建字典
dict1 = {"name":"char", "age":26}
print(dict1) #{'age': 26, 'name': 'char'}

#访问字典值,如果访问的键不存在会输出错误
print(dict1["name"]) #char
#print(dict1["sex"]) # KeyError: 'sex'

2、修改与删除字典

#修改字典
print(dict1["name"])  #char
dict1["name"] = "huang"
print(dict1["name"]) #huang

#删除字典,能删除单一元素,也能清空字典
del dict1["name"] #删除键"name"
dict1.clear()       #删除字典
del dict1           #删除字典

3、内置函数

#计算字典元数的个数
dict1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(len(dict1))   # 3

#输出字典可打印的字符串表示
print(str(dict1))  #{'Class': 'First', 'Age': 7, 'Name': 'Runoob'}

#返回数据类型
print(type(dict1)) #<class 'dict'>

4、方法

#删除字典内的所有元素
dict1 = {"name":"char", "age": 26}
print(len(dict1)) #删除前长度为:2
dict1.clear()
print(len(dict1)) #删除后长度为:0

#浅复制一个字典
dict1 = {"name":"char", "age": 26}
dict2 = dict1
print(dict2) #{'age': 26, 'name': 'char'}

#dict.formkeys(seq,value=None)创建一个新字典,以序列seq中元素做字典的键,value为键对应的初始值
seq = ("name","age","sex")
dict3 = dict.fromkeys(seq)
print(dict3) #{'name': None, 'sex': None, 'age': None}
dict4 = dict.fromkeys(seq,10)
print(dict4) #{'age': 10, 'sex': 10, 'name': 10}

#dict.get(key, default=None)返回指定键的值,如果键不存在返回默认值None
print(dict4.get("age")) #10
print(dict4.get("car")) #None
print(dict4.get("car","键不存在")) #键不存在

#key in dict 查询一个键是否在字典里,在则返回True,否则返回False
print("age" in dict4) #True
print("car" in dict4) #False

#items()遍历键和值,并返回元组数组
print(dict4.items()) #dict_items([('name', 10), ('sex', 10), ('age', 10)])
print(type(dict4.items())) #<class 'dict_items'>
for key,val in dict4.items():
    print("%s:%d" %(key,val)) #age:10,sex:10,name:10

#keys()以列表返回一个字典所有的键
print(dict4.keys()) #dict_keys(['sex', 'name', 'age'])
for key in dict4.keys():
    print(key)     #sex,age,name

#values()以列表返回字典中的所有值
print(dict4.values())  #dict_values([10, 10, 10])
for val in dict4.values():
    print(val) #10,10,10

#setdefault(key,default=None)添加一个键,如果不存在则值为default,如果存在则不添加
print(dict4) #{'name': 10, 'age': 10, 'sex': 10}
dict4.setdefault("age")
print(dict4) #{'name': 10, 'sex': 10, 'age': 10}
dict4.setdefault("work")
print(dict4) #{'work': None, 'name': 10, 'age': 10, 'sex': 10}

#dict1.update(dict2)把字典dict2更新到dict1里
print(dict4) #{'age': 10, 'work': None, 'name': 10, 'sex': 10}
dict4.update({"car":"QQ","wecat":60290})
print(dict4) #{'sex': 10, 'wecat': 60290, 'name': 10, 'car': 'QQ', 'work': None, 'age': 10}
原文地址:https://www.cnblogs.com/jp-mao/p/6289948.html