Dictionary 字典(装下整个世界)
字典是python中的唯一的映射类型,采用键值对的形式存储数据(key-value)。python对key进行哈希函数运算,根据计算结果决定value存储的地址,所以字典是无序存储的。
字典是除列表以外python之中最灵活的内置数据结构类型。
列表是有序的对象结合,字典是无序的对象结合。
两者之间的区别在于,字典当中的元素通过键来存取得,而不是通过索引来存取。
# 2018/11/3 字典的浅层复制 与深层复制差异
#赋值后会改变原字典的值,b_dict=0则是初始化,不会改变原字典的值
#------------------------------------------------------------字典深层复制与浅层复制的区别---------------------------------
print("2018/11/3 字典的浅层复制 与深层复制差异")
c_dict = my_dict.copy() #浅复制
my_dict = {'a':1,'b':2,'c':3,'d':4,'e':5}
b_dict = my_dict; b_dict['a']=1000;
print(my_dict)
print(id(my_dict))
print(id(b_dict))
print(id(c_dict))
#------------------------------------------------------------字典增加新的值----------------------------------------------
print("# 2018/11/3 字典‘增加’新的值")
# 2018/11/3 字典‘增加’新的值
a_dict = {'a':1,'b':2,'c':3,'d':4,'e':5}
print(a_dict)
new_dict = {'e':6,'f':7} #f的值会覆盖前面的5
a_dict.update(new_dict)
print(a_dict)
two_dict = {'g':8,'h':9} #原有字典无相同键,则全部追加在最后
a_dict.update(two_dict)
print(a_dict)
#------------------------------------------------------------字典删除一个值----------------------------------------------
# 2018/11/3 字典‘删除’值
print("# 2018/11/3 字典‘删除’值")
del_dict = {'a': 1000, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
#方法1 del
del del_dict['e']
print('#方法1 del',del_dict)
#方法2 pop
del_dict.pop('d')
print('#方法2 pop',del_dict)
#方法3 popitem默认删除最后的key-value值
del_dict.popitem()
print('#方法3 popitem默认删除最后的key-value值',del_dict)
#方法4 clear清空字典
del_dict.clear()
print('#方法4 clear清空字典',del_dict)
#字典还可以做计算器
参考链接 https://blog.csdn.net/weixin_39249306/article/details/80503412
#关于字典的其他问题
#动态赋值
my_dict = dict([('name', 'drink'), ('age', 28), ('location', '厦门')])
print("#动态赋值my_dict",my_dict)
#------------------------------------------------------------字典Dictionary内置函数与方法--------------------------------------------
#Dictionary内置函数与方法
#内置函数
cmp(dict1, dict2) #比较两个字典元素。
len(dict) #计算字典元素个数,即键的总数。
str(dict) #输出字典可打印的字符串表示。
type(variable) #返回输入的变量类型,如果变量是字典就返回字典类型。
#内置方法
dict.copy() # 返回一个字典的浅复制
dict.fromkeys() # 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.has_key() # 如果键在字典dict里返回true,否则返回false
dict.items() # 以列表返回可遍历的(键, 值) 元组数组
dict.keys() # 以列表返回一个字典所有的键
dict.setdefault(key, defalut = None) # 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
dict.update(dict2) # 把字典dict2的键值对更新到dict里
dict.values() # 以列表返回字典中的所有值