Python学习笔记—字典

一、修改字典

通过直接赋值法,给定具体的键和值。

>>>spam = {'color':'red','age':[18,24]}
>>>spam['sex'] = 'male'
>>>spam
{'age': [18, 24], 'color': 'red', 'sex': 'male'}

通过update(dic2)方法,将dict2的键-值对更新到字典中。

>>>spam = {'color':'red','age':[18,24]}
>>>spam2 = {'sex':'male'}
>>>spam.update(spam2)
>>>spam
{'age': [18, 24], 'color': 'red', 'sex': 'male'}

通过fromkeys(seq[,value])方法,创建一个新的字典,以seq的值为键,以value为值,默认为none。

>>>seq = ('color','age')
>>>spam = dict.fromkeys(seq,0)
>>>spam
{'age': 0, 'color': 0}

>>>spam = dict.fromkeys(seq)
>>>spam
{'age': None, 'color': None}

 

二、查找字典

通过get(key, default = None)方法,返回给定key中的值,如果key不存在,则返回default值。

>>>spam = {'color':'red','age':[18,24]}
>>>spam.get('color')
'red'

>>>spam.get('name')

>>>spam.get('name','Alice')
'Alice'

通过setdefault(key, default = None)方法,返回给定key中的值,如果值不存在,就会创建一个键-值对,值为default参数。

>>>spam = {'color':'red','age':[18,24]}
>>>spam.setdefault('color')
'red'

>>>spam.setdefault('name')
>>>spam
{'age': [18, 24], 'color': 'red', 'name': None}

>>>spam.setdefault('sex','male')
'male'
>>>spam
{'age': [18, 24], 'color': 'red', 'name': None, 'sex': 'male'}

 

三、访问字典的值

通过keys()方法,返回字典中所有的键,可用于循环。

通过values()方法,返回字典中所有的值,可用于循环。

通过items()方法,返回字典中所有的键-值对(元组形式,可分别赋值),可用于循环。

>>>spam = {'color':'red','age':[18,24]}
>>>spam.keys()
dict_keys(['color', 'age'])

>>>spam.values()
dict_values(['red', [18, 24]])

>>>spam.items()
dict_items([('color', 'red'), ('age', [18, 24])])

>>>for k, v in spam.items(): 
       print('Key:' + k + ' Value:' + str(v))
Key:color Value:red
Key:age Value:[18, 24]

键或值返回的均不是列表,所以不能对进行列表操作。

检查字典中是否存在键或值。

>>>spam = {'color':'red','age':[18,24]}
>>>'age' in spam.keys()
True

>>>'black' not in spam.values()
True

>>>18 in spam.values()
False

 

四、字典删除

通过del 语句,可以删除给定键中字典的键值,如何不给定键,则删除整个字典。

>>>spam = {'color':'red','age':[18,24]}
>>>del spam['color']
>>>spam
{'age': [18, 24]}

>>>del spam
>>>spam
Traceback (most recent call last):

  File "<ipython-input-72-cb31a703b96c>", line 1, in <module>
    spam

NameError: name 'spam' is not defined

通过clear()方法,删除字典内的所有元素,但是该字典仍然存在。

>>>spam = {'color':'red','age':[18,24]}
>>>spam.clear()
>>>spam
{}

通过pop(key[,default])方法,删除给定key对应的值,并且返回删除的值。

>>>spam = {'color':'red','age':[18,24]}
>>>value = spam.pop('age')
>>>value
[18, 24]

>>>spam
{'color': 'red'}

通过popitem()方法,随机删除一个键-值对,并返回删除的值。

>>>spam = {'color':'red','age':[18,24]}
>>>spam.popitem()
('age', [18, 24])

>>>spam
{'color': 'red'}

 

五、字典复制
由于字典是可变类型,对传递一个字典仅仅只是传递一个引用。

浅拷贝对父级(一级目录)对象进行深拷贝,对子级(二级目录)对象不拷贝,仅引用。

深拷贝对父级和子级对象均拷贝。

>>>import copy
>>>spam = {'color':'red','age':[18,24]}>>>spam2 = spam #仅传递引用
>>>spam3 = spam.copy() #浅拷贝,父级对象不变,子级对象跟着spam的子级对象变换
>>>spam4 = copy.copy(spam) #浅拷贝>>>spam5 = copy.deepcopy(spam) #深拷贝,父级对象和子级对象均不会随着spam变换

>>>spam['color'] = 'black'
>>>spam['age'].remove(18)

>>>spam
{'age': [24], 'color': 'black'}
>>>spam2
{'age': [24], 'color': 'black'}
>>>spam3
{'age': [24], 'color': 'red'}
>>>spam4
{'age': [24], 'color': 'red'}
>>>spam5
{'age': [18, 24], 'color': 'red'}

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值