键:通常是惟一的,若是重复最后的一个键值对会替换前面的,值不须要惟一
值:能够取任何数据类型,但键必须是不可变的,如字符串,数字或元组python
a = dict([('a',1),('b',2),('c',3)]) a type(a) {'a':1,'b':2,'c':3} dict
b = {'a':1,'b':2,'c':3} b type(b) {'a':1,'b':2,'c':3} dict
c = {'a':1,'b':2,'c':3} c['e'] = 4 e {'a':1,'b':2,'c':3,'e':4}
d = {'a':1,'b':2,'c':3} d.setdefault('e',4) d {'a':1,'b':2,'c':3,'e':4}
经常使用的5种方法code
del 字典名['键名'] | 删除指定键值 |
---|---|
字典名.pop('键名') | 删除键值+弹出值 |
字典名.popitem() | 随机删除一对(通常最后一对)+弹出 |
字典名.clear() | 删除词典内全部元素(和列表对应操做相同) |
del 字典名 | 删除整个词典(和列表对应操做相同) |
Examples:htm
scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95} scores.clear() scores {}scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95} del scores['Mike'] scores {'Tom': 89, 'Mary': 95, 'Jack': 95}
字典名[键] = 新值对象
字典名['键名'] | 返回改键所对应的值 |
---|---|
字典名.get('键名') | 返回改键所对应的值 |
字典名.keys() | 返回包含全部键的列表 |
字典名.values() | 返回包含全部值的列表 |
字典名.items() | 返回全部包含键值对的列表 |
Examples:blog
scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95} scores.get('Mary') 95scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95} scores.items() dict_items([("Mike":88),("Tom":89),("Mary":95),("Jack":95)])
Examples:索引
a = {'a':1, 'b':(1, 2), 'c':[1, 2, 3], 'd':(1, 2, {1:1}), 'e':{1, 2, 3}} b = copy(a) id(a) id(b) 82254800 82254224 # 不一样电脑运行结果不一样,但a,b两个字典的id不一样 [id(x) for x in a] [id(x) for x in b] [30713928, 30712248, 30378392, 30622024, 30621968] [30713928, 30712248, 30378392, 30622024, 30621968] # 内部的item的id 是同样的 说明内部的元素指向同一个值
深拷贝内存
Examples:字符串
from copy import deepcopy c = deepcopy(a) id(a) id(c) 82254800 82201408 # 不一样电脑运行结果不一样,但a,c两个字典的id不一样 [id(a[x]) for x in a] [id(c[x]) for x in c] [8791153438464, 77829320, 79350664, 79322712, 79516840] [8791153438464, 77829320, 82216968, 82251848, 79517288] # 内部的item的id 是同样的 说明内部的元素指向同一个值结果发现可变类型的id发生了变化,具体总结可参考Python基础入门—列表list相关内容get