• dict 常用方法


    1、pop方()

    查看SQLAlchemy的create_engine方法时看到

    default_strategy = 'plain'

    strategy = kwargs.pop('strategy', default_strategy)

    这段代码,不是很理解,查了一下手册,原来字典是有pop方法的,

    原型:pop(key[, default])

    说明:If key is in the dictionary, remove it and return its value, else return default. If default is not given and key is not in the dictionary, a KeyError is raised.

    如果key在一个字典中,移除并返回字典值,否则返回默认值,如果没有默认值并且key不在字典中,则抛出KeyError异常

    1 dt = {'e':{'aaa':132},'b':2,'c':332,'d':32,'ee':'gg'}
    2 print dt.pop('f', 'bbbbbb') #因为f不在字典dt中,所以返回默认值bbbbbb
    print dt.pop('e', 'bbbbbb') #e在字典dt中, 返回其字典值{'aaa':132}

    create_engine函数完整代码为:

    1 default_strategy = 'plain'
    2 def create_engine(*args, **kwargs):    
    3      strategy = kwargs.pop('strategy', default_strategy)
    4      strategy = strategies.strategies[strategy]
    5      return strategy.create(*args, **kwargs)

    首先kwargs是一个字典,第3行的意思就是如果strategy在字典kwargs中,且其值为字典,则将其在kwargs中移除,如果strategy不在kwargs中,则返回默认值default_strategy。

    2、setdefault(key, [default])

        如果key在字典中,则返回这个键对应的值,否则插入这个键,并以default作其值,default不设置的情况下默认为None

    3、get(key[, default])

        项目中发现字典没相应的键,引起异常,打算用 res = dt[kId] if kId in dt else None

        后来同事说用get(key, [, default]) 解决,效果更佳。

  • 相关阅读:
    django基础入门(3)django中模板
    ms sql 索引(一)
    Ruby入门(3)——方法、代码段
    Ruby入门(2)——基本流程控制
    Ruby入门(4)——类
    Ruby入门(1)——数据类型
    django基础入门(1)django基本配置
    四则运算加强版
    结对 四则运算
    chrome设置以及hosts备份
  • 原文地址:https://www.cnblogs.com/bjdxy/p/2785688.html
Copyright © 2020-2023  润新知