注意:dct代表字典,key代表键值

1.判断字典中某个键是否存在

实现

dct.has_key(key)  #False

更Pythonic方法

key in dct  #False

2.获取字典中的值

你想对key的value加1,首先你要判断key是否存在,不存在给一个默认值

实现

if key not in dct:
dct[key] = 0
dct[key] += 1

更Pythonic方法

dct[key] = dct.get(key, 0) + 1

如果key存在则返回对应的value,如果不存在返回默认值(这里是0)

3.字典的value是可变对象

如果这个可变对象为list,你想初始化并修改它们。

实现

for (key, value) in data:
# 把key和value以元组的结构存到list中
if key in dct:
dct[key].append(value)
else:
dct[key] = [value]

更Pythonic方法

for (key, value) in data:
dct.setdefault(key, []).append(value)

更更Pythonic方法

dct = defaultdict(list)  # 字典value的默认值为[]
for (key, value) in data:
dct[key].append(value)

dct = defaultdict(list) 等同于 dct.setdefault(key, []) 据说前者快。

defaultdict详解

4.合并两个字典

a = {'a':1,'b':2}
b = {'c':3} # 方法1
new_dict = a
new_dict.update(b) # 方法2
new_dict = dict(a.items()+b.items()) # 方法3(Pythonic)
new_dict = dict(a, **b)

如果合并两个字典的时候,如果两个字典有相同的key,则把value相加

from collections import Counter
a = {'a':1,'b':2}
b = {'a':1} c = Counter(a) + Counter(b) # 此时c为Counter对象
c = dict(c) # 转变成字典
print c
# {'a': 2, 'b': 2}

参考:

[python]pythonic的字典常用操作的更多相关文章

  1. Python基础学习----字典常用操作

    字典的常见操作: # 字典: # 格式:{键值对,键值对} dict_demo={"name":"bai-boy","age":17} # ...

  2. Python 基礎 - 字符串常用操作

    字符串常用操作 今天就介紹一下常用的字符串操作,都是以 Python3撰寫的 首字母變大寫 #!/usr/bin/env python3 # -*- coding:utf-8 -*- name = & ...

  3. 『无为则无心』Python序列 — 18、Python列表概念及常用操作API

    目录 1.列表的概念 (1)列表的定义 (2)列表的应用场景 (3)列表的定义格式 2.列表的常用操作 (1)列表的查找 1)通过下标查找 2)通过方法查找 3)判断是否存在 (2)列表的增加 @1. ...

  4. python基础之列表常用操作及知识点小结

    列表(list) List(列表) 是 Python 中使用最频繁的数据类型.列表可以完成大多数集合类的数据结构实现.它支持字符,数字,字符串甚至可以包含列表(所谓嵌套).列表用[ ]标识,是pyth ...

  5. Python列表类型及常用操作

    Python列表类型 1.用途: 存放多个值,可以根据索引存取值 2.定义方式: 在[ ]内用逗号分割开多个任意类型的值 l=['yven','law','lyf'] #l=list(['yven', ...

  6. 超详细!盘点Python中字符串的常用操作

    在Python中字符串的表达方式有四种 一对单引号 一对双引号 一对三个单引号 一对三个双引号 a = 'abc' b= "abc" c = '''abc''' d = " ...

  7. python 异常处理、文件常用操作

    异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm

  8. Python基础灬文件常用操作

    文件常用操作 文件内建函数和方法 open() :打开文件 read():输入 readline():输入一行 seek():文件内移动 write():输出 close():关闭文件 写文件writ ...

  9. python字符串、元组常用操作

    常用字符串操作函数: #Author:CGQ name="I \tam ChenGuoQiang" print(name.capitalize())#首字母大写,其他都小写 pri ...

随机推荐

  1. 转:MPlayer源代码分析

    一.Mplayer支持的格式 MPlayer是一个LINUX下的视频播放器,它支持相当多的媒体格式,无论在音频播放还是在视频播放方面,可以说它支持的格式是相当全面的. 视频格式支持:MPEG.AVI. ...

  2. 解决Visual Studio 2010/2012的RC4011 warnings

    如果在vc10/11工程的rc文件中有以下任意一行代码: #include <winuser.h> #include <richedit.h> 那么vc将会给出一对警告: C: ...

  3. java 调用微信截图工具

  4. CoreOS实践(1)—CoreOS初体验

    CoreOS主要包含以下一些东西: (1)最小的OS:kernel+systemd (2)使用Docker运行应用 (3)使用fleet管理集群 (4)使用etcd实现服务发现:一个分布式的K/V存储 ...

  5. 连接UI到代码

    本章,你将连接FoodTracker应用程序的UI到代码并定义一些可执行的动作.当你完成时,你的应用程序将是这个样子: 学习目标在课程结束时,你将能够:1.解释一个storyboard中的场景和vie ...

  6. ELK——安装 logstash 2.2.0、elasticsearch 2.2.0 和 Kibana 3.0

    本文内容 Elasticsearch logstash Kibana 参考资料 本文介绍安装 logstash 2.2.0 和 elasticsearch 2.2.0,操作系统环境版本是 CentOS ...

  7. MySQL模拟:线上误update的恢复

    作为DBA,细心.沉稳是首要的基本素质.不过总有那么一会心烦意乱或者开发同学出现误操作之类的...这里模拟一个误update操作,然后恢复. 如果开发同学有误操作之后最好先别乱动生产环境,需要记录几个 ...

  8. 关于VS2010出现“此方法显式使用的 CAS 策略已被 .NET Framework 弃用... ...请使用 NetFx40_LegacySecurityPolicy 配置开关”解决办法

    有时候VS会出现“此方法显式使用的 CAS 策略已被 .NET Framework 弃用.若要出于兼容性原因而启用 CAS 策略,请使用 NetFx40_LegacySecurityPolicy 配置 ...

  9. [Unit Testing] AngularJS Unit Testing - Karma

    Install Karam: npm install -g karma npm install -g karma-cli Init Karam: karma init First test: 1. A ...

  10. Solr 5.x集成中文分词word,mmseg4j

    使用标准分词器,如图: 使用word分词器 下载word-1.3.jar,注意solr的版本和word分词的版本 将文件word-1.3.jar拷贝至文件夹C:\workspace\Tomcat7.0 ...