Python学习--字典

1. 字典创建

字典使用键值对(key-value)存储数据,每一个键(key)对应一个值(value),key与value是相互绑定的,通过key可以唯一访问到对应的值。

创建一个字典:

1 dic = {'k1': 'alec', 'k2': 'aric', 'k3': 'Alex', 'k4': 'Tony', 'k5': 'rain'}
2 dic = dict(k1='alec', k2='aric', k3='Alex', k4='Tony', k5='rain')3 dic = dict({'k1': 'alec', 'k2': 'aric', 'k3': 'Alex', 'k4': 'Tony', 'k5': 'rain'})

字典适用中括号包含key访问value,如dic['k1']得到字符串'alec'

2. 字典操作

2.1 clear(self)

清除字典内容,使字典成为一个空字典

1 dic = {'k1': 'alec', 'k2': 'aric', 'k3': 'Alex', 'k4': 'Tony', 'k5': 'rain'}
2 print(dic)
3 dic.clear()
4 print(dic)
5 
6 >>{'k1': 'alec', 'k2': 'aric', 'k3': 'Alex', 'k4': 'Tony', 'k5': 'rain'}
7 >>{}

2.2 copy(self)

浅拷贝

 1 dic = {'k1': 'alec', 'k2': 'aric', 'k3': 'Alex', 'k4': 'Tony', 'k5': 'rain'}
 2 
 3 dic1 = dic.copy()
 4 dic2 = dic
 5 
 6 dic['k1'] = 'AAA'
 7 
 8 print(dic)
 9 print(dic1)
10 print(dic2)
11 
12 >>{'k1': 'AAA', 'k2': 'aric', 'k3': 'Alex', 'k4': 'Tony', 'k5': 'rain'}
13 >>{'k1': 'alec', 'k2': 'aric', 'k3': 'Alex', 'k4': 'Tony', 'k5': 'rain'}
14 >>{'k1': 'AAA', 'k2': 'aric', 'k3': 'Alex', 'k4': 'Tony', 'k5': 'rain'}

直接使用赋值操作符拷贝字典仅仅将对象的引用拷贝过去,即dic2只是dic的引用,当dic发生改变时dic2同步改变

适用copy函数则是将dic拷贝一个副本给dic1,当dic发生改变时对dic1不产生影响

2.3 fromkeys(S, v=None)

适用fromkeys从一个字典中取出一些key构成新的字典,S为从一个字典中取出的key,v是这个字典的初始值,每个key的value都是v,默认是None

1 dic = {'k1': 123, 'k2': 345, 'k4': 111}
2 n = dic.fromkeys(['k1', 'k2', 'k3'], 'alex')
3 print(n)
4 
5 >>{'k1': 'alex', 'k2': 'alex', 'k3': 'alex'}

2.4 get(self, k, d=None)

查找字典中是否有k这个key,如果有返回k对应的value,如果没有返回d,默认返回None,也可以自定义

2.5 has_key(self, k)

判定是否有k这个键值,如果有返回True,反之返回False

2.6 items(self)

以元组的形式返回整个字典

1 dic = {'k1': 123, 'k2': 345, 'k4': 111}
2 print(dic.items())
3 
4 >>dict_items([('k1', 123), ('k2', 345), ('k4', 111)])

2.7 keys(self)

返回字典的所有key

1 dic = {'k1': 123, 'k2': 345, 'k4': 111}
2 dic_key = dic.keys()
3 print(dic_key)
4 
5 >>dict_keys(['k1', 'k2', 'k4'])

2.8 pop(self, k, d=None)

删除k对应的键值对,如果字典中有k对应的key则删除字典中对应的键值对,并返回对应的value,如果没有找到则返回None

1 dic = {'k1': 123, 'k2': 345, 'k4': 111}
2 dic_pop = dic.pop('k2')
3 print(dic)
4 print(dic_pop)
5  
6 >>{'k1': 123, 'k4': 111}
7 >>345

2.9 popitem(self)

删除最后一个键值对,并以元组的形式返回被删除的键值对

1 dic = {'k1': 123, 'k2': 345, 'k4': 111}
2 dic_pop = dic.popitem()
3 print(dic)
4 print(dic_pop)
5 
6 >>{'k1': 123, 'k2': 345}
7 >>('k4', 111)

2.10 setdefault(self, k, d=None)

查找字典中的key值,如果字典中有k则返回k对应的value,如下代码中的111, 如果没有k则为字典添加一个k,如下代码中的k5

 

 1 dic = {'k1': 123, 'k2': 345, 'k4': 111}
 2 flag = dic.setdefault('k5', 'LLL')
 3 flag1 = dic.setdefault('k4')
 4 
 5 print(flag)
 6 print(flag1)
 7 print(dic)
 8 
 9 >>LLL
10 >>111
11 >>{'k1': 123, 'k2': 345, 'k4': 111, 'k5': 'LLL'}

 

2.11 update(self, E=None, **F)

1 dic = {'k1': 123, 'k2': 345, 'k4': 111}
2 dic.update(k1=444, k3=555)
3 print(dic)
4 
5 >>{'k1': 444, 'k2': 345, 'k4': 111, 'k3': 555}

k1存在则更新新值,k3不存在则更新键值对

2.12 values(self)

返回字典中的所有value

1 dic = {'k1': 123, 'k2': 345, 'k4': 111}
2 dic_value = dic.values()
3 print(dic_value)
4 
5 >>dict_values([123, 345, 111])

 

posted @ 2017-03-03 10:55  Techml  阅读(189)  评论(0编辑  收藏  举报