在python的编程中,我们经常会遇到需要字典的情况,python的 等号= 是非常神奇而好用的东西,python只要等号赋值了,那么一切皆对象是也!
(1)创建一个空字典
dict1={} # =号,一对大括号即可
(2)创建一个有内容的字典
dict2={'美女':"迷你漂亮",'胸围':88,'腰围':52,'臀围':86} #后面的字典dict2,就指这一个哦,请稍微记一下
(3)复制字典
(㳀复制,只是多了个名字,字典还是原来的字典)
dict3=dict2
# 这时候,dict3与dict2只是名字不一样,内容是一样的,如果dict2变化,则dict3也是跟着变的,反过来也是这样,dict3变会带着dict2变化
#所以建议大家不要用这一种复制,否则你多整几个不同的名字,代码稍微多一些,很容易不小心改了一个地方引起其他地方出错
(4)复制字典
2 (强烈推荐这个深层复制哦,我就叫深复制吧)
dict4=dict2.copy()
# 这时候的dict4,复制后,就与dict2一模一样的,但是这绝对就是完全不同的2个字典,各自变化都不再互相影响
(5)复制的技巧
如果遇到分支,一般先复制一个空字典,满足条件再用深复制(第4点)
dict5={}
isBeauty=True
if isBeauty: # 你认为是美女,就整多个,双…
dict5=dict2.copy() #
else:
pass # 如果你不爱美女,就把pass换成你要的吧
(6)
为字典增加值,也就是
添加新元素
,一般包括 主键值(不能重复),对应的值
dict2.setdefault('腿长',120) # 我们为 dict2 的美女增加 腿长:120的字典元素
(7)遍历字典
#访问字典元素,一般就是 dict[‘主键’] ,增加,修改,取值,删除等操作 ” dict[key] ”
for k in dict2: print(k) print(dict2[k]) #------------------------ for k in dict2.keys(): print(k) print(dict2[k])
# 上面2种方法都是可以的,意思也差不多,结果一样,输出的 k 是主键值,输出的 dict2[k]是该主键对应的值value
#所以访问字典元素,一般就是 dict[‘主键’]
(8)其他字典dict常用操作
-1-:
clear()方法
clear() 用于清空字典中所有的 key-value 对,对一个字典执行 clear() 方法之后,该字典就会变成一个空字典。例如如下代码:
dict2.clear()
-2-:
get()方法
get() 方法其实就是根据 key 来获取 value,它相当于方括号语法的增强版,当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误;但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误。例如如下代码:
y=dict2.get('腰围') print(y) #按上面定义的内容,这个小蛮腰 y=52
-3-:
update()方法
update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。在执行 update() 方法时,如果被更新的字典中己包含对应的 key-value 对,那么原 value 会被覆盖;如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。例如如下代码:
dict2.update({'腰围':51}) # update( { key:value } )
# 这里要注意,update后面一个小括号(),小括号内是大括号,分别是 key:value, 这里的key可以是新的,也可以是原来字典的,如果新key不在原字典里,则直接是添加新元素到原字典里。
#如果key是原来存在的,则把应对的值value更新为最新的
-4-:
items()、keys()、values()
items()、keys()、values() 分别用于获取字典中的所有 key-value 对、所有 key、所有 value。这三个方法依次返回 dict_items、dict_keys 和 dict_values 对象,Python 不希望用户直接操作这几个方法,但可通过 list() 函数把它们转换成列表。如下代码示范了这三个方法的用法:
-5-:
pop方法
pop() 方法用于获取指定 key 对应的 value,并删除这个 key-value 对。如下方法示范了 pop() 方法的用法:
-6-:
popitem()方法
popitem() 方法用于随机弹出字典中的一个 key-value 对。
-7-:
fromkeys()方法
fromkeys() 方法使用给定的多个 key 创建字典,这些 key 对应的 value 默认都是 None;也可以额外传入一个参数作为默认的 value。该方法一般不会使用字典对象调用(没什么意义),通常会使用 dict 类直接调用。例如如下代码: