文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python 字典i

2023-01-31 01:59

关注

字典
    字典类似于你通过联系人名称查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
    键值对在字典中以这样的方式标记: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]


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯