前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytho字典集合

pytho字典集合

作者头像
热心的社会主义接班人
发布2018-04-27 14:49:47
6680
发布2018-04-27 14:49:47
举报
文章被收录于专栏:cscs

字典是在大括号里放置逗号分隔的 关键字:值对 ,{key ,value},是无序的,关键字相当于一个内存地址。dictionary是python唯一的映射关系, 关键字必须是可以hash的,可以哈希表示key必须是不可变的类型,如数字,string,tuple等,否则会出现typeerror,可以hash函数,判断一个对象是否可以映射。

代码语言:javascript
复制
>>> hash(123)
123
>>> hash('str')
-311850177
>>> hash([1,2])
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    hash([1,2])
TypeError: unhashable type: 'list'
>>> {6,'six'}
{'six', 6}
>>> {[1,2],2}
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    {[1,2],2}
TypeError: unhashable type: 'list'

dictionary的index 序列是以连续的整数作为index,而dictionary以key为索引,key可以是任意不可变的类型。

字典的创建:{key:value[,关键字:值n]} dict()函数创建字典,list和tuple作为参数

代码语言:javascript
复制
>>> d1=dict(([1,'a'],[2,'b']))
>>> print(d1)
{1: 'a', 2: 'b'}
>>> d2=dict([[1,'a'],[2,'b']])
>>> d2

dictionary基本操作

代码语言:javascript
复制
>>> dt1={'name':{'first':'tom','second':'jack'}}
>>> dt1['name']['second']
'jack'
>>> dt2={'sore':[66,77,88]}
>>> dt2['sore'][0]
66

更新dictionary 如果key已经存在,则修改对应的值。如果不存在,则增加一个元素。

代码语言:javascript
复制
>>> dt1={'n1':66,'n2':68}
>>> dt1['n1']=22
>>> dt1['n3']=99
>>> dt1
{'n1': 22, 'n3': 99, 'n2': 68}

del dictionary_name[key] 删除关键字对应的元素 del dictionary_name 删除字典

代码语言:javascript
复制
>>> del dt1['n1']
>>> dt1
{'n3': 99, 'n2': 68}
>>> del dt1
>>> dt1
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    dt1
NameError: name 'dt1' is not defined

字典长度获取 len(),也有max(),min(),sum()等。

代码语言:javascript
复制
>>> dt={1:'a1',2:'a2',3:'a3'}
>>> len(dt)
3
>>> max(dt)
3
>>> sum(dt)
6

dictionary对象常用的方法。 d.keys() 换回包含字典所有key的list d.values()返回字典所有值的list d.items()返回一个包含所有 (key,value) tuple的列表。

代码语言:javascript
复制
>>> dt
{1: 'a1', 2: 'a2', 3: 'a3'}
>>> dt.keys()
dict_keys([1, 2, 3])
>>> print(dt.values())
dict_values(['a1', 'a2', 'a3'])
>>> print(dt.items())
dict_items([(1, 'a1'), (2, 'a2'), (3, 'a3')])

d.copy() 返回字典d的副本 d.clear() 删除字典d的全部元素,字典d变成空字典 d.pop(key) 从字典d删除关键字key并返回删除的值。

代码语言:javascript
复制
>>> d=dt.copy()
>>> d
{1: 'a1', 2: 'a2', 3: 'a3'}
>>> d.pop(1)
'a1'
>>> d
{2: 'a2', 3: 'a3'}
>>> d.clear()
>>> d
{}

get()方法和pop()方法 d.get(key[,value]),如果字典关键字是key,则返回key对应的值,如果key不存在,则返回None。pop()的方法和get方法相似。

代码语言:javascript
复制
>>> dt={'z':11,22:'bb','ee':68}
>>> dt.get(22)
'bb'
>>> dt.pop('z')
11
>>> dt
{'ee': 68, 22: 'bb'}

d1.update(d2)方法,把d2的字典元素添加到d1中。has_key()方法,如果key在字典则返回true,否则返回false。

代码语言:javascript
复制
>>> dt0={'11':11,'22':33}
>>> dt.update(dt0)
>>> dt
{'11': 11, 'ee': 68, 22: 'bb', '22': 33}

dictionary的遍历

代码语言:javascript
复制
def display_dict(dt):
    for key in dt.keys():
        print('key={0},value={1}'.format(key,dt[key]))
代码语言:javascript
复制
>>> dt={'11':11,'22':22,'33':33}
>>> display_dict(dt)
key=11,value=11
key=22,value=22
key=33,value=33
代码语言:javascript
复制
def display_dict(dt):
    for  item in dt.items():
        print(item)
代码语言:javascript
复制
>>> display_dict(dt)
('33', 33)
('11', 11)
('22', 22)

集合的操作 在python中,集合是一堆无序排列,不重复的元素,类似数学的集合,可以去重,求交集,并集,补集等等。 用set()函数 或者{ }创建集合

代码语言:javascript
复制
>>> se={11,22,33}
>>> print(se)
{33, 11, 22}
>>> se2=set(44,55,66)
>>> se2
{66, 44, 55}
>>> c=se|se2
>>> c
{33, 66, 22, 55, 11, 44}
>>> c1=se&c
>>> c1
{33, 11, 22}
>>> c2=c^se
>>> c2
{66, 55, 44}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.04.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档