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

Posted 超级可爱的夹心小朋友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟随小甲鱼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

字典推导式

以上是关于跟随小甲鱼up主学习Python——字典下篇的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

跟随小甲鱼up主学习Python——函数

跟随小甲鱼up主学习Python——函数