1039: python基本数据类型--字典

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:32 Solved:0

Description

基础在这里:https://www.runoob.com/python/python-dictionary.html
我在这里为大家做一些补充
首先再次回顾:
字典 的 键是不可hash的,即他的键是不可变。
字典的值可以重复,键不能重复
字典的查找速度非常快,但是所消耗的空间很大,可以理解为用空间换时间。
一般建议通过d.get方法获取值,这样匹配不到键就返回None不会报错(不必强求)

字典视图对象

由 dict.keys()dict.values() 和 dict.items() 所返回的对象是 视图对象。 该对象提供字典条目的一个动态视图,这意味着当字典改变时,视图也会相应改变。

字典视图可以被迭代以产生与其对应的数据,并支持成员检测:
len(dictview) 返回字典中的条目数。
iter(dictview) 返回字典中的键、值或项(以 (键, 值) 为元素的元组表示)的迭代器。
键和值是按插入时的顺序进行迭代的。 这样就允许使用 zip() 来创建 (值, 键) 对: pairs = zip(d.values(), d.keys())。 另一个创建相同列表的方式是 pairs = [(v, k) for (k, v) in d.items()].
在添加或删除字典中的条目期间对视图进行迭代可能引发 RuntimeError 或者无法完全迭代所有条目。

在 3.7 版更改: 字典顺序会确保为插入顺序。
x in dictview 如果 x 是对应字典中存在的键、值或项(在最后一种情况下 x 应为一个 (键, 值) 元组) 则返回 True
reversed(dictview) 返回一个逆序获取字典键、值或项的迭代器。 视图将按与插入时相反的顺序进行迭代。


我们这次通过讲解一个字典的排序问题,顺便再学习学习lambda怎么玩。


Sample Input Copy


Sample Output Copy


Source/Category