文档章节

字典

dfkjih
 dfkjih
发布于 2016/01/28 20:17
字数 379
阅读 5
收藏 0

1. 创建字典

>>> dict((["a", 1], ["b", 2])) # ⽤两个序列类型构造字典
{'a': 1, 'b': 2}
>>> dict(zip("ab", range(2)))
{'a': 0, 'b': 1}
>>> dict(map(None, "abc", range(2)))
{'a': 0, 'c': None, 'b': 1}
>>> dict.fromkeys("abc", 1) # ⽤序列做 key,并提供默认 value,原dict不会改变,通常用来赋值给一个变量
{'a': 1, 'c': 1, 'b': 1}
>>> {k:v for k, v in zip("abc", range(3))} # 字典解析
{'a': 0, 'c': 2, 'b': 1}
>>> d = {"a":1, "b":2}
>>> d.setdefault("a", 100) # key 存在,直接返回 value
1
>>> d.setdefault("c", 200) # key 不存在,先设置,后返回
200
>>> d
{'a': 1, 'c': 200, 'b': 2}
7 / 75

2. 合并字典

>>> z = dict(list(x.items()) + list(y.items()))
>>> z
{'a': 1, 'c': 11, 'b': 10}

还可以这样:

z = x.copy()
z.update(y)

3. 删除key

del d['key']
value = d.pop('key') #删除并返回值
d.clear() #清空

4. 添加/更新

#另一个字典
d.update({'key':'newvalue'})  #这里支持一整组值
#元组列表
d.update( [ ('a',1), ('b',2) ] ) #每个元组两个元素,(key,value)
#**key
d.update(c=3, e=4)

5. 排序

from operator import itemgetter
aa = {"a":"1","sss":"2","ffdf":'5',"ffff2":'3'}
#直接sorted返回keys的列表
bb = sorted(aa)
print bb
#以values排序
sort_aa = sorted(aa.items(),key=itemgetter(1))
print sort_aa
#以key排序
sort_aa_key=[]
for k in sorted(aa):
    sort_aa_key.append((k,aa[k]))
print sort_aa_key
结果:
['a', 'ffdf', 'ffff2', 'sss']
[('a', '1'), ('sss', '2'), ('ffff2', '3'), ('ffdf', '5')]
[('a', '1'), ('ffdf', '5'), ('ffff2', '3'), ('sss', '2')]

其他:

d = {'a':1, 'b':2}
d['a']  #得到1,但是若键不存在,将引发异常KeyError。慎用,建议不使用
d.get('c', 3) #得到3,
get方法,若是键不存在,返回第二个参数default_value.若是没有设default_value返回None


© 著作权归作者所有

共有 人打赏支持
dfkjih
粉丝 0
博文 23
码字总数 13951
作品 0
浦东
走进Python世界(五)数据类型 5. 序列类型-字典(Dictionary)

什么是字典 字典是python中唯一的映射类型(哈希表) 字典是无序的 字典对象是可变的,但是字典的键必须使用不可变的对象,并且一个字典中可以使用不同的类型键值 keys() 或者values()返回键...

Garrry
2015/07/27
0
0
RDIFramework.NET — 基于.NET的快速信息化系统开发框架 - 5.1 数据字典管理模块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/7979385 RDIFramework.NET — 基于.NET的快速信息化系统开发框架 5.1 数据字典管...

rdiframework
2012/09/14
0
0
OC中的NSDictionary(字典)

字典的基本概念 OC中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样. 通过key(键),查找的对应的value(值),key通常是字符串对象...

Dumplings
2016/03/31
24
0
08-Swift中的字典

1 字典的介绍 字典允许按照某个键来访问元素 字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合 Swift中的字典 Swift字典类型是Dictionary,也是一个泛型集合 2 字典的...

不孤独的美食家
2016/08/07
14
0
Python3.5修炼手册10

字典 字典的使用 在python中对字典进行了构造,让我们可以轻松的查到某个特定的键(类似拼音或笔画索引),从而通过键找到对应的值(类似具体某个字)。 创建和使用字典 字典的创建格式如下 ...

duyuheng
2017/08/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
今天
2
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
38
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部