Python3:《学习笔记与实战》之基本数据结构(2)字典操作

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()                          # 以列表返回字典中的所有值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值