字典dict:
定义:通过{ }来存储数据,通过key:value来定义键值对数据,每个键值对中间用逗号分隔开,其中value可以是任意类型,而key一定要是不可变类型(数字,字符串)。
1、d1 = {'name':'bob','age':18} 2、d2 = dict({'name':'bob'}) 3、#了解 zip: l1 = ['name','bob'] l2 = ['age','18'] z1 = zip(l1,l2) print(dict(z1))
常用方法: #1.1、按照key:value映射关系取值(可存可取) user_info = {'name':'egon','age':18,'hobbies':['football','eat','sleep']} print(user_info['age']) >>>18 print(user_info['hobbies'][0]) >>>football #1.2 对于赋值操作,如果key原先不存在于字典,则会新增key:value user_info = {'name':'egon','age':18} user_info['gender'] = 'male' print(user_info) >>>{'name': 'egon', 'age': 18, 'gender': 'male'} # 1.3 对于赋值操作,如果key原先存在于字典,则会修改对应value的值 user_info = {'name':'egon','age':18} user_info['name'] = 'tony' print(user_info) >>>{'name': 'tony', 'age': 18, 'gender': 'male'} #2、成员运算:in , not in #默认判断某个值是否为字典的key user_info = {'name':'egon','age':18} print("name" in user_info) >>>True #3、len():#获取当前字典中键值对的个数 user_info = {'name':'egon','age':18} print(len(user_info)) >>>2 #4、for循环 #4.1 默认遍历的是字典的key for key in user_info: print(key) >>>name >>>age #4.2 只遍历key for i in user_info.keys(): print(i) >>>name >>>age #4.3 只遍历value user_info ={'name':'egon','age':18} for i in user_info.values(): print(i) >>>egon >>>18 #4.4 遍历key和value for i in user_info.items(): print(i) 内置方法: #1、keys,values,items dic= {'k1':'jason','k2':'Tony','k3':'JY'} print(dic.keys()) #返回所有的key print(dic.values()) #返回所有的value print(dic.items()) #返回所有的键值对,返回值是列表套元组的形式,每一个键值对都是存在元组 >>>dict_keys(['k1', 'k2', 'k3']) >>>dict_values(['jason', 'Tony', 'JY']) >>>dict_items([('k1', 'jason'), ('k2', 'Tony'), ('k3', 'JY')]) #2、get():获取指定key的值,如果值不存在,默认返回None,可以通过第二个参数修改默认返回的值 dic= {'k1':'jason','k2':'Tony','k3':'JY'} dic.get('k1') >>> 'jason' res=dic.get('xxx') # key不存在,不会报错而是默认返回None print(res) >>> None res=dic.get('xxx',666) # key不存在时,可以设置默认返回的值 print(res) >>> 666 # ps:字典取值建议使用get方法 #3、pop():删除指定key对应的键值对,有返回值,返回为对应的value dic= {'k1':'jason','k2':'Tony','k3':'JY'} v = dic.pop('k2') # 删除指定的key对应的键值对,并返回值 print(dic) >>> {'k1': 'jason', 'k3': 'JY'} print(v) >>> 'Tony' #4、popitem(): 随机删除一组键值对,并将删除的键值放到元组内返回 dic= {'k1':'jason','k2':'Tony','k3':'JY'} item = dic.popitem() print(dic) >>> {'k3': 'JY', 'k2': 'Tony'} print(item) >>> ('k1', 'jason') > #5、update():用新字典更新旧字典,有则修改,无则添加 dic= {'k1':'jason','k2':'Tony','k3':'JY'} dic.update({'k1':'JN','k4':'xxx'}) print(dic) >>>{'k1': 'JN', 'k3': 'JY', 'k2': 'Tony', 'k4': 'xxx'} #6、formkeys():生成一个新字典,第一个参数(列表),它会以第一个参数中的各个元素为key,以第二个参数为值,组成一个新字典 dic = dict.fromkeys(['k1','k2','k3'],'egon') print(dic) >>>{'k1':'egon', 'k2':'egon', 'k3':'egon'} #7、setdefault():若key不存在,新增键值对,有返回值,返回新增value。 dic={'k1':111,'k2':222} res=dic.setdefault('k3',333) print(res) >>>333 print(dic) >>>{'k1': 111, 'k2': 222, 'k3': 333} #若key存在则不做任何修改,并返回已存在key对应的value值 dic={'k1':111,'k2':222} res=dic.setdefault('k1',666) res >>> 111 dic # 字典不变 >>> {'k1': 111, 'k2': 222}