1.字典的定义

使用大括号包含,每个元素使用key:value的格式,元素之间用逗号隔开

定义一个字典

>>>user_dict={'id':1,'name':'likuan','sex':'男','tel':'18829787559','addr':'西安市'}>>>user_dict

2.字典的操作

(1)字典的访问 字典名[key]

>>>user_dict['name']'likuan'

(2)字典的更新 key值存在就更新

>>>user_dict{'id':1,'name':'likuan','sex':'男','tel':'18829787559','addr':'西安市'}>>>user_dict['sex']='女'>>>user_dict{'id':1,'name':'likuan','sex':'女','tel':'18829787559','addr':'西安市'}

(3)字典的新增

>>>user_dict['age']=25>>>user_dict{'id':1,'name':'likuan','sex':'女','tel':'18829787559','addr':'西安市','age':25}

(4)字典的删除

>>>deluser_dict['age']>>>user_dict{'id':1,'name':'likuan','sex':'女','tel':'18829787559','addr':'西安市'}

3.字典进行max,min , len , in , not in 操作

(1)max函数(对key进行操作)

>>>max(user_dict)'tel'

(2)min函数(对key进行操作)

>>>min(user_dict)'addr'

(3)len函数(获取字典的长度)

>>>len(user_dict)4

(4)in (判断key是否在字典内)

>>>'sex'inuser_dictTrue

(5)not in

>>>'sex'notinuser_dictFalse

(6)遍历字典的value(key是不可变的)

>>>foriinuser_dict:...print(i,user_dict[i])...id1namelikuansex女tel18829787559addr西安市

4.字典的三种类型转换

第一种 空字典

>>>b=dict()>>>b{}

第二种

>>>c=dict(a=1,b=2)>>>c{'a':1,'b':2}

第三种 可迭代对象,第一个作为key,第二个作为value

>>>a=dict([['a',1],['b',2]])>>>a{'a':1,'b':2}

5.小知识点

变量交换

>>>a=1>>>b=2>>>a,b=b,a>>>a2>>>b1

元组的话可以省略括号

>>>b,a(1,2)

通过元组给变量赋值

a,b,c=(1,2,3)a,b,c=1,2,3

通过列表给字典赋值

>>>ll=[['a',1],['b',2]]>>>dd={}>>>fora,binll:...dd[a]=b...>>>dd{'a':1,'b':2}

6.小例子

eg1: 统计票数按列表中的名字统计次数

#!/usr/bin/pythonusers=['锥子','锥子','李宽','李宽','李密']result={}foruserinusers:ifusernotinresult:result[user]=1else:result[user]+=1print(result)

eg2:统计一串字符串中的字母出现的个数

#!/usr/bin/pythonartile='''TheZenofPython,byTimPetersTheZenofPython,byTimPetersTheZenofPython,byTimPetersTheZenofPython,byTimPeters'''artile_string={}foriinartile:ifnoti.isalpha():continueifinotinartile_string:artile_string[i]=1else:artile_string[i]+=1print(artile_string)

7.字典函数

(1)clear 函数 清空字典

>>>b{'t':2,'e':1,'s':1}>>>b.clear()>>>b{}

(2)copy 函数 复制一个字典,会生成一个新的字典和原来的字典在内存中的位置不一样,如果通过 = 赋值的字典,在内存中的位置不会改变

>>>b={'a':1,'b':2}>>>b{'a':1,'b':2}>>>a=b.copy()>>>a{'a':1,'b':2}>>>id(a),id(b)(140695559209896,140695559211480)

(3)pop 函数

pop.(‘a’)移除相应的key值并返回value

pop.(‘a’,‘z’) 移除的key值不存在返回Z

>>>a{'a':1,'b':2,'c':3}>>>a.pop('c')3>>>a.pop('c','False')'False'

(4)popitem 函数 随机返回 第一个返回 key 第二个返回 value

(5)keys 函数 返回一个由key组成的list

>>>a.keys()dict_keys(['a','b'])

循环遍历 key

>>>a{'a':1,'b':2}>>>a.keys()dict_keys(['a','b'])>>>foriina.keys():...print(i)...ab

(6)values 函数 由所有的 value 组成的一个 list

>>>a.values()dict_values([1,2])

循环遍历所有的values

>>>foriina.values():...print(i)...12

(7)items 函数 生成一个可迭代的列表

>>>a.items()dict_items([('a',1),('b',2)])>>>foriina.items():...print(i)...('a',1)('b',2)

循环打印key和value

>>>forkey,valueina.items():...print(key,":",value)...a:1b:2

(8)formkeys函数 用一个可迭代的对象生成一个字典 第一个参数作为key 第二个参数作为value

>>>dict.fromkeys(range(10)){0:None,1:None,2:None,3:None,4:None,5:None,6:None,7:None,8:None,9:None}>>>dict.fromkeys(range(10),1){0:1,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:1,9:1}

(9)update函数 批量更新和添加字典,存在更新,不存在添加

>>>a{'a':1,'b':2}>>>a.update({'b':3,'c':4})>>>a{'a':1,'b':3,'c':4}

(10)get函数 通过key获取value值,key 存在返回value , 不存在返回None 或者自定义值

>>>a.get('c')4>>>a.get('d',False)False

(11)setdafault函数 如果 key存在则弹出原来的value,如果key 不存在添加key并且弹出设置的value

>>>a{'a':1,'b':3,'c':4}>>>a.setdefault('a',2)1>>>a.setdefault('d',2)2>>>a{'a':1,'b':3,'c':4,'d':2}

eg:使用setdefault函数做之前的统计

#!/usr/bin/pythonusers=['锥子','锥子','李宽','李宽','李密']result={}foruserinusers:result[user]=result.setdefault(user,0)+1print(result)