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

python 字典i

作者头像
py3study
发布2020-01-13 11:15:42
8960
发布2020-01-13 11:15:42
举报
文章被收录于专栏:python3python3python3

字典     字典类似于你通过联系人名称查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。     键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。另外,记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己对它们排序。

1,clear

>>> d={}

>>> d['name']='lili'

>>> d['age']=12

>>> d

{'age': 12, 'name': 'lili'}

>>> ret=d.clear()

>>> d

{}

>>> print ret

None

2,copy

>>> x={'name':'admin','mac':['foo','bar','bazz']}

>>> y=x.copy()

>>> y['name']='root'

>>> y['mac'].remove('foo')

>>> y

{'mac': ['bar', 'bazz'], 'name': 'root'}

>>> x

{'mac': ['bar', 'bazz'], 'name': 'admin'}

上图可以发现,替换值得时候原始字典不受影响,但是如果修改了值,原始字典也会被修改为了避免这个问题是用深复制deepcopy

使用copy模块的deepcopy函数来完成操作

>>> from copy import deepcopy

>>> d={}

>>> d['name']=['alfred','bertrand']

>>> c=d.copy()

>>> dc=deepcopy(d)

>>> d['name'].append('clive')

>>> c

{'name': ['alfred', 'bertrand', 'clive']}

>>> dc

{'name': ['alfred', 'bertrand']}

>>> d

{'name': ['alfred', 'bertrand', 'clive']}

>>> {'lili','22'}.fromkeys(['name','age'])

dc通过deepcopy深复制 当修改d的内容dc没有发现变化

3.fromkeys

fromkeys方法使用给定的键建立新的字典,每个键默认对应的值为None

在dict字典类型上调用方法

>>> dict.fromkeys(['name','age'])

{'age': None, 'name': None}

设置默认值替代none

>>> dict.fromkeys(['name','age'],'(unknown)')

{'age': '(unknown)', 'name': '(unknown)'}

4,get

get方法定义更宽松的访问字典的方法。当使用get方法访问一个不存在的键时,没有任何异常,得到none值,还可以自定义默认值替换none

如果键值存在,get用起来就像普通字典一样查询

>>> d={}

>>> print d['name']

Traceback (most recent call last):

 File "<pyshell#93>", line 1, in <module>

   print d['name']

KeyError: 'name'

>>> print d.get('name')

None

>>> d.get('name','N/A')

'N/A'

>>> d['name']='lili'

>>> d.get('name')

'lili'

5,has_key

has_key 方法可以检查字典中是否含有给出的键,表达式d.has_key(k) 相当于表达式kind

>>> d={}

>>> d.has_key('name')

False

>>> d['name']='lili'

>>> d.has_key('name')

True

6.items和iteritems

items方法将所有的字典项以列表方式返回,这些列表项中的每一项都来自于(键,值)。但是项在返回时并没有特殊的顺序

>>> d={'a':'a','b':'lajdflasd'}

>>> d.items()

[('a', 'a'), ('b', 'lajdflasd')]

iteritems方法的作用大致相同但是会返回一个迭代器而不是列表

>>> it=d.iteritems()

>>> it

<dictionary-itemiterator object at 0x02006E40>

>>> list(it)

[('a', 'a'), ('b', 'lajdflasd')]

7,keys和iterkeys

keys 方法将字典中的键以列表形式返回,而iterkeys则是返回针对键的迭代器

8,pop

pop方法用来获得对应于给定键的值,然后将这个键值对从字典中移除

>>> d={'x':1,'y':2}

>>> d.pop(x)

>>> d.pop('x')

1

>>> d

{'y': 2}

9.popitem

popitem方法类似于list.pop,后者会弹出列表的最后元素。但不同的是。popitem弹出随机的项

>>> d

{'y': 2}

>>> d.popitem()

('y', 2)

>>> d

{}

10,setdefault

该方法在某种程度上类似于get方法,就是能够获得与给定键指向关联的值,除此之外setdefault还能在字典中不含有给定键值情况下设定相应的键值

>>> d={}

>>> d.setdefault('name','N/A')

'N/A'

>>> d

{'name': 'N/A'}

>>> d['name']='lili'

>>> d.setdefault('name','N/A')

'lili'

>>> d

{'name': 'lili'}

11.update

update方法可以利用一个字典项更新另外一个字典

>>> d={'title':'pytho web site','url':'http://www.python.com',}

>>> d={'title':'pytho web site','url':'http://www.python.com'}

>>> x={'title':'python language website'}

>>> d.update(x)

>>> d

{'url': 'http://www.python.com', 'title': 'python language website'}

12,values和itervalues

values方法以列表的形式返回字典中的值(itervalues),与返回键的列表不同的是,返回值得列表中可以包含重复元素

>>> d={}

>>> d[1]=1

>>> d[2]=2

>>> d[3]=3

>>> d[4]=1

>>> d

{1: 1, 2: 2, 3: 3, 4: 1}

>>> d.values()

[1, 2, 3, 1]

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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