Todo【Python】字典 ----排序、 创建、更优雅地使用。----python学习笔记

1、所有字典方法简明

1、对 键和值 操作的方法

方法作用
keys()返回键的 列表
values()返回值的 列表
iterkeys()返回键的 可迭代对象
itervalues()返回值的 可迭代对象
has_key(key)若有key则返回True,否则返回False py3用 key in dict判断键的存在
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()返回由(键, 值)元组组成的 列表
iteritems()返回由(键, 值)元组组成的 可迭代对象py3删除
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

3、字典创建(迭代)

4、更优雅的使用(与其它模块结合)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值