1、所有字典方法简明
1、对 键和值 操作的方法
方法 | 作用 |
---|---|
keys() | 返回键的 列表 |
values() | 返回值的 列表 |
iterkeys() | 返回键的 可迭代对象 |
itervalues() | 返回值的 可迭代对象 |
get(key[, default]) | 返回key键所对应的值,若没有则返回default的内容 |
dict.fromkey(seq[, value]) | 返回从seq(列表、元组)中获得key和被设置的value(默认为None)的字典 |
setdefault(key[, default]) | 与get()方法相似返回key对应的值,若没有key,不但返回default,而且将新key-default加入字典(key和default都可以是可迭代对象) |
pop(key[, default]) | 移除key并返回key所对应的值,或者返回default |
items() | 返回由(键, 值)元组组成的 列表 |
popitem() | 随机移除一项,并作为(键, 值)返回 |
2、对字典整体的方法
方法 | 作用 |
---|---|
clear() | 移除所有项 |
copy() | 复制字典 |
updata(other_dict) | 将other_dict中的项目加入被操作的字典,不会写入重复项(v3.7) |
TODO…
2、字典排序(sorted方法)
利用到的方法、函数
has_sorted = sorted(iterable, key=None, reverse=False)
setdefault(key,default)
举个栗子:
dict = {"A": 3, "C": 1, "B": 2}
1、如果直接用sorted函数,会只将键进行升序排序,返回为列表
dict = {"A": 3, "C": 1, "B": 2}
has_sorted = sorted(dict)
print(has_sorted)
输出结果:
['A', 'B', 'C']
2、按键大小排序,并返回字典
dict = {"A": 3, "C": 1, "B": 2}
dict_new = {}
has_sorted = sorted(dict.items(), key=lambda x: x[0])
for k, v in has_sorted:
dict_new.setdefault(k, v)
print(dict_new)
输出结果为:
{'A': 3, 'B': 2, 'C': 1}
3、按值大小排序,返回字典
has_sorted = sorted(dict.items(), key=lambda x: x[1])
自定义字典排序函数
def dict_sorted(ord_dict, raw=True, value=True, reverse=False):
"""对字典进行排序。
raw:是否按字典返回(=True)。
value:是否按值排序(=True)。
reverse:是否降序(=False)"""
new_dict = {}
if value:
has_sorted = sorted(ord_dict.items(), key=lambda x: x[1], reverse=reverse)
if raw:
for k, v in has_sorted:
new_dict.setdefault(k, v)
return new_dict
else:
return has_sorted
else:
has_sorted = sorted(ord_dict.items(), key=lambda x: x[0], reverse=reverse)
if raw:
for k, v in has_sorted:
new_dict.setdefault(k, v)
return new_dict
else:
return has_sorted
测试:
from dict_sorted import dict_sorted
a = {"A": 10, "C": 100, "F": 1 }
b = dict_sorted(a, raw=True, value=True, reverse=False)
print(b)
运行结果:
{'F': 1, 'A': 10, 'C': 100}
good