字典dict:
一:基本使用
1 用途:用来存多个值,但每一个值都有一个key与之对应,key对值有描述性的功能
当存储多个值表示的不同的状态时,
2 定义方式:{}内用逗号分隔开多个元素,每一个元素都是key:value的形式
value可以是任意数据类型,但是key必须为不可变类型,key通常应该是字符串类型,
1 d={'x':1,'y':2} #d=dict({'x':1,'y':2}) 2 d=dict(a=1,b=2,c=3) 3 print(d) 4 dic={1:'a',0:'b',1.1:'c',(1,2,3):'d'} 5 print(dic[1]) 6 print(dic[0]) 7 print(dic[1.1]) 8 print(dic[(1,2,3)]) 9 dic={[1,2,3]:'a'} 10 dic={{'x':1}:'a'}
3 常用操作+内置的方法
1 d={'x':1,'y':2} 2 d['x']=100 3 print(d) 4 d['z']=3 5 print(d) 6 7 l=['a','b'] 8 l[2]='c'
1 d={'x':1,'y':2} 2 print(len(d))
1 d={'x':1,'y':2} 2 print('x' in d)
1 d={'x':1,'y':2} 2 del d['x'] 3 print(d) 4 res=d.pop('y') 5 print(d) 6 print(res) 7 8 res=d.popitem() 9 print(d) 10 print(res) 11 12 d={'a':1,'b':2,'c':3,'d':4} 13 for k in d: 14 print(k) 15 16 l=[1,2,3] 17 del l[1] 18 print(l)
1 keys()返回一个包含字典所有KEY的列表 2 values()返回一个包含字典所有value的列表 3 items()返回一个包含所有(键,值)元祖的列表 4 他们在python3中只会有一个内容空间,远远比python2中创建一个列表节省空间 5 msg_dic={ 6 'apple':10, 7 'tesla':100000, 8 'mac':3000, 9 'lenovo':30000, 10 'chicken':10, 11 } 12 names=[] 13 for k in msg_dic: 14 names.append(k) 15 print(names) 16 17 values=[] 18 for k in msg_dic: 19 values.append(msg_dic[k]) 20 print(values) 21 22 keys=msg_dic.keys() 23 print(keys) 24 for k in keys: 25 print(k) 26 l=list(keys) 27 print(l) 28 29 vals=msg_dic.values() 30 print(vals) 31 print(list(vals)) 32 33 print(msg_dic.items()) 34 print(list(msg_dic.items())
1 msg_dic={ 2 'apple':10, 3 'tesla':100000, 4 'mac':3000, 5 'lenovo':30000, 6 'chicken':10, 7 } 8 只取key---方法一 9 for k in msg_dic: 10 print(k,msg_dic[k]) 11 只取key---方法二 12 for k in msg_dic.keys(): 13 print(k,msg_dic[k]) 14 15 只取value---方法三 16 for v in msg_dic.values(): 17 print(v) 18 19 取key和value---方法四 20 for k,v in msg_dic.items(): #k,v=('apple', 10) 21 print(k,v)
4、其他方法
1 d={'x':1,'y':2,'z':3} 2 v=d.get('xxxx') 3 print(v) # None 4 print(d['xxxxxxx'])# 如果字典中没有这个key,会报错
1 d={'x':1,'y':2,'z':3} 2 d1={'a':1,'x':1111111} 3 d.update(d1) 4 print(d)#{'x': 1111111, 'y': 2, 'z': 3, 'a': 1}
1 l=['name','age','sex'] 2 d={} 3 for k in l: 4 d[k]=None 5 d=dict.fromkeys(l,None) 6 print(d)
1 info={'name':'zj','age':18,'sex':'male'} 2 3 如果字典中有setdefault指定的key,那么不改该key对应的值,返回原的value 4 res=info.setdefault('name','zj_NB') 5 print(info) 6 print(res) 7 8 如果字典中没有setdefault指定的key,那么增加一个key:value,返回新的value 9 info.setdefault('height',1.80) 10 print(info) 11 12 info={'age':18,'sex':'male'} 13 v=info.setdefault('name','浩哥') 14 print(v)
1 s='hello wcl wcl say hello sb sb' 2 l=s.split() 3 # print(l) 4 d={} 5 # for word in l: #word= 'hello' 6 # if word not in d: 7 # d[word]=1 #{'hello':2, 'wcl':2,'say':1} 8 # else: 9 # d[word]+=1 10 # print(d) 11 12 s='hello wcl wcl say hello sb sb' 13 l=s.split() 14 print(l) 15 d={} 16 17 # d={'hello':2,'wcl':2} 18 for word in l: #word='alex' 19 # d[word]=l.count(word) #d['wcl']=2 20 d.setdefault(word,l.count(word)) 21 print(d)
二:该类型总结
1、存一个值or存多个值
可以存多个值,值都可以是任意类型,而key必须是不可变类型,通常应该是不可变类型中字符串类型
2、有序or无序
无序
3、可变or不可变