python-dict相关

用了很久的python,但是对python的许多特性掌握都不是很熟悉啊,这里进行一下记录好了:

python的字典相关

对字典的排序

对字典进行排序的话,就要利用到sorted函数

1
sorted(one_dic.items(),key = lambda s:s[1],reverse = True)

这个排序函数的key其实是“排序依据”的意思(回调函数),如果有多个值的话就会按照“分发扑克”的权重方式进行排序

OrderedDict

你想创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序。
使用collections中的OrderedDict模块来完成相关文档
collections中包含了很多特殊化处理过的python的容器-dict,list,set 和 tuple。
OrderedDict会记录下键值进入当前字典的顺序

1
2
3
4
5
6
7
>>> d = {'book':3, 'apple':4, 'key':14}
>>> t = OrderedDict(sorted(d.items(), key = lambda k:k[1]))
>>> t
OrderedDict([('book', 3), ('apple', 4), ('key', 14)])
>>> t['flags'] = 4
>>> t
OrderedDict([('book', 3), ('apple', 4), ('key', 14), ('flags', 4)])

4.有个特别的字典叫做defaultdict,其作用相当于是【当字典里不存在对应的变量的时候,会调用默认的函数对对应的键赋值。

1
2
3
4
5
6
7
8
9
>>> from collections import defaultdict
>>> def default_call():
return 's'
>>> d = defaultdict(default_call)
>>> d
defaultdict(<function default_call at 0x000000000123ED90>, {})
>>> d[1]
's'