跟随小甲鱼up主学习Python——字典下篇

改:类似于序列的操作,只需要指定一个存在于字典的键,就可以修改其对应的值,如果要进行多个值的修改,可以使用update()方法。

>>> d = dict.fromkeys("FishC")
>>> d
{'F': None, 'i': None, 's': None, 'h': None, 'C': None}
>>> d['s'] = 115
>>> d
{'F': None, 'i': None, 's': 115, 'h': None, 'C': None}
>>> d.update({'i':105, 'h':104})
>>> d
{'F': None, 'i': 105, 's': 115, 'h': 104, 'C': None}
>>> d.update(F = '70', C = '67')
>>> d
{'F': '70', 'i': 105, 's': 115, 'h': 104, 'C': '67'}
>>> d.update(F = 70, C = 67)
>>> d
{'F': 70, 'i': 105, 's': 115, 'h': 104, 'C': 67}

查:有两种方法,1.第一种就是你给定一个键,返回其对应的值。2.第二种就是使用get()方法,

>>> d['C']
67
>>> d.get('c', '没找到哦')
'没找到哦'
>>> d.get('C', '没找到哦')
67
>>> d.get('c')                     

注意这里使用get方法的时候,默认如果没有找到的话就可以设定第二个参数例如代码中的:'没有找到哦',如果找到了,这个键则返回对应的值,在默认情况下第二参数是不显示什么的,就直接跳到下一行。

setdefault():查找一个键是否存在于字典中,如果存在就返回其对应值,如果不存在就给它指定一个新的值.

>>> d.setdefault('C', 'code')
67
>>> d.setdefault('c', 'code')
'code'
>>> d
{'F': 70, 'i': 105, 's': 115, 'h': 104, 'C': 67, 'c': 'code'}

items() 、keys()、values():三个方法分别获取字典的键值对、键、值。三者是视图对象,视图对象就是字典的动态视图,意味着当字典的内容发生变化的时候,视图对象也会相应的发生变化。

>>> keys = d.keys()
>>> values = d.values()
>>> items = d.items()
>>> items
dict_items([('F', 70), ('i', 105), ('s', 115), ('h', 104), ('C', 67), ('c', 'code')])
>>> keys
dict_keys(['F', 'i', 's', 'h', 'C', 'c'])
>>> values
dict_values([70, 105, 115, 104, 67, 'code'])
>>> d.pop('c')
'code'
>>> d
{'F': 70, 'i': 105, 's': 115, 'h': 104, 'C': 67}
>>> keys
dict_keys(['F', 'i', 's', 'h', 'C'])
>>> values
dict_values([70, 105, 115, 104, 67])
>>> items
dict_items([('F', 70), ('i', 105), ('s', 115), ('h', 104), ('C', 67)])

浅拷贝:copy()方法

>>> e = d.copy()
>>> e
{'F': 70, 'i': 105, 's': 115, 'h': 104, 'C': 67}

获取键值对的数量:len() 

>>> len(d)
5

判断某个键是否存在于字典中:in 或者 not in

>>> 'C' in d
True
>>> 'c' in d
False
>>> 'c' not in d
True

字典可以转换为列表:list(),将字典中所有构成列表。

>>> list(d)
['F', 'i', 's', 'h', 'C']
>>> list(d.values)
Traceback (most recent call last):
  File "<pyshell#35>", line 1, in <module>
    list(d.values)
TypeError: 'builtin_function_or_method' object is not iterable   

出错的原因应该是版本问题,默认情况下list()只是将键构成列表。

iter()函数:也可以用于字典,将字典的键构成一个迭代器。

>>> e = iter(d)
>>> next(e)
'F'
>>> next(e)
'i'
>>> next(e)
's'
>>> next(e)
'h'
>>> next(e)
'C'
>>> next(e)

Traceback (most recent call last):
  File "<pyshell#42>", line 1, in <module>
    next(e)
StopIteration                                        //结束了没有了

嵌套

>>> d = {'吕布':{'chinese':66, 'math':99}, '关羽':{'chinese':88, 'math':77}}
>>> d['吕布']['math']
99
>>> d = {'吕布':[66, 99], '关羽':[88, 77]}
>>> d['关羽'][0]
88

字典推导式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值