python 字典

dict:

Python 内置了字典:dict的支持,dict全称dictionary,在其他语言中称为map,使用键-值(key-value)存储

举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list

如果用dict实现,只需要一个"名字"-"成绩"的对照表,直接根据名字查找成绩,无论这个表有多大,

查找速度都不会变慢。用Python写一个dict如下:

# -*- coding: UTF-8 -*-
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

print d['Michael']

C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/t1.py
95


# -*- coding: UTF-8 -*-
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

print d

d['Adam']=67
print '--------------'
print d

C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/t1.py
{'Bob': 75, 'Michael': 95, 'Tracy': 85}
--------------
{'Bob': 75, 'Michael': 95, 'Tracy': 85, 'Adam': 67}



要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:

判断Key是否存在:

# -*- coding: UTF-8 -*-
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

if 'Thomas' in d:
    print 11111
else:
    print 22222

C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/t1.py
22222

# -*- coding: UTF-8 -*-
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

if 'Michael' in d:
    print 11111
else:
    print 22222

C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/t1.py
11111

二:是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:

# -*- coding: UTF-8 -*-
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

if d.get('Thomas'):
    print 11111
else:
    print 22222

C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/t1.py
22222


要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

# -*- coding: UTF-8 -*-
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print d
d.pop('Bob')
print d

C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/t1.py
{'Bob': 75, 'Michael': 95, 'Tracy': 85}
{'Michael': 95, 'Tracy': 85}



set:

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


要创建一个set,需要提供一个list作为输入集合

原文地址:https://www.cnblogs.com/hzcya1995/p/13349625.html