注意: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. 报错:LINQ to Entities 不识别方法

    大致是: var products = db.Products.Select(new ProductVm{Name=SomeMethod() }); 针对IQueryable集合的查询操作会被LINQ ...

  2. Codeforces Beta Round #17 C. Balance DP

    C. Balance 题目链接 http://codeforces.com/contest/17/problem/C 题面 Nick likes strings very much, he likes ...

  3. 解决 NDP40-KB2468871不能安装

    新机子 成功装了vs2010,然后装sql2012提示让装vs2012sp1,下载了sp1,装的时候,装到最后一个包NDP40-KB2468871的时候报错了 KB2468871安装失败 错误: Ex ...

  4. nginx location 的配置

    一.基本语法:location [=|~|~*|^~] /uri/ { … } 二.分类: 1.基本location:以“ = ”或“ ^~ ”为前缀或者没有任何前缀的 /uri/ 2.正则locat ...

  5. OpenSSL命令---pkcs8

    用途: pkcs8格式的私钥转换工具.它处理在PKCS#8格式中的私钥文件.它可以用多样的PKCS#5 (v1.5 and v2.0)和 PKCS#12算法来处理没有解密的PKCS#8 Private ...

  6. BW:如何加载和生成自定义的层次结构,在不使用平面文件的SAP业务信息仓库

    介绍 通常情况下,报告需要在一个类似树的结构来显示数据.通过启用此特性在SAP BW层次结构.高级数据显示的层次结构的顶层节点.更详细的数据可以向下钻取到的层次结构中的下级节点的可视化. 考虑一个例子 ...

  7. C#打开摄像头抓取照片然后退出

    using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; namespa ...

  8. MFC中混合使用Duilib制作界面

    因为公司项目最近入了MFC的这个大坑,用MFC做UI做了一段时间,感觉不是很方便,开发效率有点慢. 看了c++里面做界面的类库,感觉Duilib比较符合做界面的需求,而且很多大公司也在使用Duilib ...

  9. Invalid Image Path - No image found at the path referenced under key "CFBundleIconFile": Icon.png

    I got the same error when uploading my app. Moving all icon files to the Asset Catalog works if your ...

  10. 用Wireshark简单分析HTTP通信

    我们都学过TCP,HTTP的相关概念,本文借助协议分析工具Wireshark,让大家对一些概念眼见为实,权当温故而知新. 场景: 在Client(10.239.196.211)上通过web brows ...