在Java语言中,Python的字典语言相当于Map的数据结构,也是日常开发中经常使用的键值对各式数据结构。
1.字典的创建与操作
字典最基本的创建方式是:
字典内部是一系列的“键:值”对,一组中的键与值用“:”分隔开,不同的键值对使用“,”分割,整个字典用大括号括起来。需要注意的是:字典是无序的,当然创建字典的方式还可以使用dict()函数创建一个空的字典,也可以使用{}直接创建空的字典,也可以通过tuple,list的方式辅助创建。字典的基本操作有:查询,插入,删除,具体代码如下:
输出结果:
总结
假设我们有一字典D
– 查询:D[key]就会返回key对应的值
– 修改:D[key] = new_value 就可以修改key对应的值
– 插入:D[new_key] = new_value,需要注意的是,如果字典中有该键,则会覆盖之前的内容,你也可以理解为修改之前的值
– 删除:del D[key],删除对应key的键值对
2.字典的遍历
尽管字典是无序的,但是有时候我们需要将它按照一定的顺序打印出来,一个最简单的方法就是获取字典中所有的键值,并把它存到一个list中,然后通过一个一个键再获取对应的值。这种方法,我们还可以对键的list进行排序后再输出,也就间接地对字典进行了排序。示例如下:
输出结果如下:
3.字典排序
虽然上部分介绍了字典的排序,但是还是相对麻烦,本部分借助Python中的sorted()函数对字典进行排序。本部分内容主要参考文献1
3.1 使用sorted()排序
实例如下:
sorted()函数默认是给字典的键进行排序。
3.2 对键反向排序
我们继续使用sorted()函数的属性对键值进行反向排序,实例如下:
3.3 对值排序
在第2部分中已经介绍了通过.values()获取自己的值,那么我们可以进一步地对自己进行排序。实例如下:
同理,我们在sorted()函数中加入reverse=True的属性,那么就会进行反向排序。
重点:我们也可以使用.items()得到包含键、值得元组,然后指定key进行排序,其中使用匿名函数lambda来指定是根据键排序,还是根据值排序。示例如下:
3.4 拓展:使用itemgetter函数对字典排序
其实以上得字典排序已经够了,代码示例如下:
这里得排序是根据选择键、值进行排序。operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些索引或键值,这里不展开探讨。
Reference
1.https://blog.csdn.net/ustbbsy/article/details/79637594