博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dict 常用方法
阅读量:5057 次
发布时间:2019-06-12

本文共 1190 字,大约阅读时间需要 3 分钟。

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 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]) 解决,效果更佳。

转载于:https://www.cnblogs.com/bjdxy/archive/2012/11/24/2785688.html

你可能感兴趣的文章
Round #345 B. Beautiful Paintings(Div.2)
查看>>
51nod 1018排序
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
linux swoole
查看>>
An Easy Problem?! - POJ 2826(求面积)
查看>>
【题解】[P4178 Tree]
查看>>
Jquery ui widget开发
查看>>
css3实现循环执行动画,且动画每次都有延迟
查看>>
更改git仓库地址
查看>>
有标号DAG计数 [容斥原理 子集反演 组合数学 fft]
查看>>
Recipe 1.4. Reversing a String by Words or Characters
查看>>
Rule 1: Make Fewer HTTP Requests(Chapter 1 of High performance Web Sites)
查看>>
sql注入
查看>>
「破解」Xposed强
查看>>
Linux 平台下 MySQL 5.5 安装 说明 与 示例
查看>>
src与href的区别
查看>>
ABAP工作区,内表,标题行的定义和区别
查看>>
《xxx重大需求征集系统的》可用性和可修改性战术分析
查看>>
Python 中 创建类方法为什么要加self
查看>>