Python字典方法
字典也有方法,很有用,但其使用頻率可能沒(méi)有列表和字符串方法那樣高。
1、clear?刪除所有的字典項(xiàng)
d = {'key': 'value'}d.clear()print(d){}
2、copy?方法copy返回一個(gè)新字典,其包含的鍵值對(duì)與原來(lái)的字典相同(這各方法是淺復(fù)制,因?yàn)橹当旧硎窃歉北荆?/p>x = {'username':'admin','machines': ['foo', 'bar', 'baz']}y = x.copy()y['username'] = 'mlh'y['machines'].remove('bar')print(x)print(y){'machines': ['foo', 'baz'], 'username': 'admin'}{'machines':?['foo',?'baz'],?'username':?'mlh'}
當(dāng)替換副本中的值時(shí),原字典不受影響,如果修改副本的值,原字典也隨著改變,因?yàn)樵值渲赶虻囊彩潜恍薷牡闹?br>
3、fromkeys?創(chuàng)建一個(gè)新字典,其中包含指定的鍵,且每個(gè)鍵對(duì)應(yīng)的值都是None
d = dict.fromkeys(['name','age'])print(d){'age': None, 'name': None}d = dict.fromkeys(['name1','name2'],'chengzi')print(d){'name1': 'chengzi', 'name2': 'chengzi'}
4、get?訪問(wèn)字典key,獲取value,使用get訪問(wèn)不存在的key時(shí),不會(huì)引發(fā)異常,返回None
d = {'name': 'chengzi','age':20}print(d.get('class'))print(d.get('name'))Nonechengzi
5、items 返回一個(gè)包含所有字典項(xiàng)的列表,其中每個(gè)元素都為(key,value)的形式,字典在列表中的排列順序不確定。返回值屬于一種名為字典視圖的特殊類型,可用于迭代。
d = {'name': 'chengzi','age':20}print(d.items())for key,value in d.items():print(key,value)dict_items([('name',?'chengzi'),?('age',?20)])name chengziage 20
6、keys?返回一個(gè)字典視圖,包含字典中的所有key,可用于迭代
d = {'name': 'chengzi','age':20}print(d.keys())for key in d.keys():print(key)dict_keys(['age',?'name'])agename
7、pop 獲取指定key對(duì)應(yīng)的value,并將該key和value從字典中刪除
d = {'name': 'chengzi','age':20}print(d.pop('name'))print(d)chengzi{'age': 20}
8、setdefault?有點(diǎn)像get,如果指定的key存在,返回對(duì)應(yīng)的value,指定的key不存在,將key和value添加更新到字典里
d = {'name': 'chengzi','age':20}print(d.setdefault('name'))print(d.setdefault('city','上海'))print(d)chengzi上海{'age': 20, 'name': 'chengzi', 'city': '上海'}
9、update 使一個(gè)字典中的key和value更新另一個(gè)字典,對(duì)于通過(guò)參數(shù)提供的字典,將其key和value添加到當(dāng)前字典中;如果當(dāng)前字典包含相同的key,就更新替換它的value
d1 = {'name': 'chengzi','age':20}d2={'city':'上海'}d3={'age':30}print(d1.update(d2))print(d1)print(d1.update(d3))print(d1)None{'city': '上海', 'name': 'chengzi', 'age': 20}None{'city': '上海', 'name': 'chengzi', 'age': 30}
10、values?返回一個(gè)由字典中的值組成的字典視圖,不同于方法keys,方法values返回的視圖可能包含重復(fù)的值
d = {'name': 'chengzi','age':20}print(d.values())for value in d.values():print(value)dict_values(['chengzi',?20])chengzi20??
