Python字典(dictionary)学习笔记

一、认识Python字典

1、Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。

2、字典由键(key)和它对应的值(value)组成,字典是python唯一的映射类型。字典也被称为关联数组或哈希表。

3、字典中的键必须独一无二,但值不必。创建时如果同一个键被赋值两次,后一个值会被记住。

4、键必须不可变,可以用数字、字符串或元组充当,但是不可以用列表。常用字符串作为键。

二、创建字典

1、使用工厂方法dict()创建字典  #不常用

例:a=dict((['name','emma'],['age',18])) #--里面是一个大的元组,元组里面以列表的方式写键和值

2、内建方法fromkeys(),字典中的元素具有相同的值,默认为None  #不常用

例:b={}.fromkeys((‘x’,’y’),1)

3、常用方法:dict={key:value}

例:a={'name':'emma','age':18}

三、查看字典

keys() #返回键列表

values() #返回值列表

items() #返回键值对的元组

has_key(key) #返回是否含有该key

dict[key] #查看字典中的值

dict.get(key,value) #查看字典中的值,字典项多时可用。如果key不存在,则返回指定值value.

例:

#返回键列表

>>> a={'name':'emma','age':18}

>>> a.keys()

['age', 'name']

#返回值列表

>>> a.values()

[18, 'emma']

#返回键值对的元组

>>> a.items()

[('age', 18), ('name', 'emma')]

#返回是否含有该key

>>> a.has_key('weight')

False

>>> a.has_key('age')

True

#查看字典中的值

>>> a['name']

'emma'

#查看字典中的值

>>> a.get('name','emma')#查看字典中name为emma的,字典项多时可用

'emma'

>>> a.get('name')#查看name的值,name必须是一个值

'emma'

四、遍历字典

1、for key in dict:

print key,dict[key]

例:

>>>a={'name':'emma','age':18}

>>>for k in a:

print k,a[k]

age 18

name emma

2、for key,value in dict.items():

print key,value

例:

>>>a={'name':'emma','age':18}

>>>for k,v in a.items():

print k,v

age 18

name emma

五、增删改字典

1、增、改:dict[key]=value  #1)字典中不存在该键值,则增加;2)存在该键值,则修改。

例1):增加

>>>a={'name':'emma','age':18,'city':'Beijing'}

>>>a['weight']=50

>>>print a

{'city':'Beijing', 'age': 18, 'name': 'emma', 'weight': 50}#增加

例2):修改

>>>a['age']=20

>>>a

{'city':'Beijing', 'age': 20, 'name': 'emma', 'weight': 50}#修改

2、字典间更新:dict1.update(dict2)  #更新dict2到dict1,无则添加,重复则覆盖

例:

>>>a={'name':'emma','age':18,'city':'Beijing'}

>>>b={'age':20,'gender':'female'}

>>>a.update(b)#更新字典b到a中,age被覆盖,gender被添加

>>>a

{'city':'Beijing', 'age': 20, 'name': 'emma', 'gender': 'female'}

3、删:1)del dict[key];2)del dict;3)dict.pop(key)

例1):del dict[key]   #删除某个键值

>>>a={'name':'emma','age':18,'city':'Beijing'}

>>>del a['city']

>>>a

{'age':18, 'name': 'emma'}

例2):del dict  #删除整个字典

>>>a={'name':'emma','age':18,'city':'Beijing'}

>>>del a

>>>a  #字典a被删除,不存在

Traceback(most recent call last):

File "", line 1,in

a

NameError:name 'a' is not defined

例3):dict.pop(key)  #先弹出待删除值,再删除。此删除属于破坏性操作,慎用此方法。

>>>a={'name':'emma','age':18,'city':'Beijing'}

>>>a.pop('city')

'Beijing'  #弹出待删除值

>>>a

{'age':18, 'name': 'emma'}

4、清空:dict.clear()  #清空后内存中还存在这个字典

>>>a={'name':'emma','age':18,'city':'Beijing'}

>>>a.clear()

>>>a

{}  #内存中还存在,只是被清空

知识拓展:

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

set可以看成数学意义上的无序和无重复元素的集合。

详见:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868193482529754158abf734c00bba97c87f89a263b000

小结:

1、通过in判断key是否存在:

>>>'emma' in dict

False

2、dict内部存放的顺序和key放入的顺序是没有关系的。

3、和list比较,dict有以下几个特点:

     1)查找和插入的速度极快,不会随着key的增加而增加;

     2)需要占用大量的内存,内存浪费多。

而list相反:

    1)查找和插入的时间随着元素的增加而增加;

    2)占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

你可能感兴趣的:(Python字典(dictionary)学习笔记)