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}