python基础语法---数据类型之字典类型

字典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、按key存取值:可存可取
1 d={'x':1,'y':2}
2 print(len(d))
2、长度len
1 d={'x':1,'y':2}
2 print('x' in d)    
3、成员运算in和not in
 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)
4、删除
 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())
5、键keys(),值values(),键值对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)    
6、循环

    4、其他方法

1 d={'x':1,'y':2,'z':3}
2 v=d.get('xxxx') 
3 print(v) # None
4 print(d['xxxxxxx'])# 如果字典中没有这个key,会报错
1、get---函数返回指定键的值,如果值不在字典中返回默认值
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}
2、update---添加字典,如果之前有key就覆盖其value,如果之前字典没有相应的key就添加这个键值对
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)
3、fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
 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)
4、setdefault() 方法和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。
 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)
4、练习

  二:该类型总结
    1、存一个值or存多个值
      可以存多个值,值都可以是任意类型,而key必须是不可变类型,通常应该是不可变类型中字符串类型

    2、有序or无序
      无序

    3、可变or不可变

猜你喜欢

转载自www.cnblogs.com/zhangjie19930507/p/9118609.html