字典

简介:

像列表一样,“字典”是许多值的集合。但不像列表的下标,字典的索引可以使用许多不同数据类型,不只是整数。字典的索引被称为“键”,键及其关联的值称为“键-值”对。

字典中的表项是不排序的。所以不能像列表那样切片。

1
2
3
>>>  dict = { 'name' : 'Tom' , 'age' : 18 , 'Color' : 'white' }
>>>  dict [ 'age' ]
18


keys()、values()和items()方法

▎3个字典的方法:

    keys()         键

    values()       值

    items()        键-值对

这些方法返回的值不是真正的列表,它们不能被修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>>  dict = { 'name' : 'Tom' , 'age' : 18 , 'Color' : 'white' }
>>>  for  in  dict .keys():
...      print (k)
...
Color
name
age
>>>  for  in  dict .values():
...      print (v)
...
white
Tom
18
>>>  for  k,v  in  dict .items():
...      print (k,v)
...
Color white
name Tom
age  18


in和not in

利用in和not in操作符可以检查值是否存在于列表中。

1
2
3
4
5
6
7
8
9
>>>  dict = { 'name' : 'Tom' , 'age' : 18 , 'Color' : 'white' }
>>>  'age'  in  dict .keys()
True
>>>  'age'  in  dict       ## 等于“'age' in dict.keys()”
True
>>>  'Color'  not  in  dict .keys()
False
>>>  'white'  in  dict .values()
True


get()方法

在访问一个键的值之前,检查该键是否存在于字典中,可以使用get()方法,它有两个参数:要取得其值的键,以及如果该键不存在时,返回的备用值。

1
2
3
>>>  dict = { 'name' : 'Tom' , 'age' : 18 , 'Color' : 'white' }
>>>  'My hair is ' + str ( dict .get( 'hair' , 'BLACK' )) + '.'
'My hair is BLACK.'


setdefault()方法

setdefault()方法为字典中某个键设置一个默认值,当该键没有任何值时使用它。

传递给setdefault()方法的第一个参数,是要检查的键。第二个参数,是如果该键不存在时要设置的值。如果该键确实存在,方法就会返回键的值。

1
2
3
4
5
6
7
>>>  dict = { 'name' : 'Tom' , 'age' : 18 , 'Color' : 'white' }
>>>  dict .setdefault( 'hair' , 'black' )
'black'
>>>  dict .setdefault( 'age' , '20' )
18
>>>  dict
{ 'Color' 'white' 'name' 'Tom' 'age' 18 'hair' 'black' }


漂亮打印

如果程序中导入pprint模块,就可以使用pprint()和pformat()函数,它们将漂亮打印一个字典的字。

如果字典本身包含嵌套的列表或字典,pprint.pprint()函数就特别有用。

如果希望得到漂亮打印的文本作为字符串,而不是显示在屏幕上,那就调用pprint.pformat()。

pprint.pprint(someDictValue) = print(pprint.pformat(someDictValue))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
>>>  import  pprint
>>> text = 'One night can change everything in your life.'
>>> count = {}
>>>  for  char  in  text:
...     count.setdefault(char, 0 )
...     count[char] = count[char] + 1
...
>>> pprint.pprint(count)
{ ' ' 7 ,
  '.' 1 ,
  'O' 1 ,
  'a' 2 ,
  'c' 2 ,
  'e' 5 ,
  'f' 1 ,
  'g' 3 ,
  'h' 3 ,
  'i' 4 ,
  'l' 1 ,
  'n' 6 ,
  'o' 1 ,
  'r' 2 ,
  't' 2 ,
  'u' 1 ,
  'v' 1 ,
  'y' 2 }















本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1947913 ,如需转载请自行联系原作者
相关文章
|
Linux 数据安全/隐私保护 Shell
centos7在忘记密码的情况下修改密码
centos7在忘记密码的情况下修改密码: 1、在重启系统过程中,快速在键盘上的上下键, 之后按下e键,进入编辑模式 2、在编辑模式,移动光标到LANG=en_US.
3808 0
|
9月前
|
人工智能 安全 API
0 代码为你的 Typecho 博客接入阿里云百炼(可接入 DeepSeek-R1 满血版!)
随着科技企业LLM发展成熟,AIHelper插件让Typecho博客轻松拥有AI助手。通过集成阿里云百炼API,支持DeepSeek-R1、Qwen等模型,帮助读者快速查找内容、总结文章。本文详细介绍了从导出文章、配置阿里云百炼、创建AI应用到安装配置插件的全过程,确保安全高效地为博客添加智能交互功能。相比官方方案,AIHelper提供更安全的访问限制和低代码部署方式,无需编写代码即可实现智能化管理。
0 代码为你的 Typecho 博客接入阿里云百炼(可接入 DeepSeek-R1 满血版!)
|
12月前
|
人工智能 自然语言处理 安全
详解:poe ai官网是什么_poe ai官方网站_Poe AI官网入口
在全球范围内,人工智能的迅速发展引发了广泛关注,而Poe AI作为一款前沿的AI聊天平台,正处于这场技术变革的前沿
1464 10
|
机器学习/深度学习 消息中间件 监控
监控工具实现实时监测的方法
监控工具实现实时监测的方法
572 11
|
前端开发 JavaScript
宏任务和微任务在浏览器渲染过程中的执行顺序
宏任务和微任务是浏览器事件循环中的两种任务类型。宏任务包括整体代码块、setTimeout等,微任务有Promise.then、MutationObserver等。每个宏任务执行完毕后,会先执行完所有微任务,再进行下一轮渲染或执行下一个宏任务。
|
Web App开发 Python
DrissionPage 实战:极简壁纸爬取之旅
本文介绍了如何使用DrissionPage工具自动化爬取极简风格的壁纸图片。通过简单的环境搭建和代码实现,展示了从访问目标网站、定位图片元素到下载保存的全过程。文中还提供了详细的代码示例,帮助读者快速上手。
510 4
|
网络协议 网络架构
eNSP DHCP的配置
模拟华为设备中,路由器-交换机-PC三台设备,路由器作为DHCP服务器,PC作为DHCP客户端
阿里云软件著作权登记申请流程
阿里云软件著作权登记申请流程,阿里云计算机软件著作权登记20天下证,那么如何申请阿里云软件著作权登记呢?阿里云百科来详细说下注册账号、实名认证、软件著作权选择、信息填写、纸质材料邮寄一直到版权中心审查和下证详细说明:
769 1
阿里云软件著作权登记申请流程
性能高、上手快,实体类转换工具 MapStruct 到底有多强大
1.什么是MapStruct 1.1 JavaBean 的困扰 对于代码中 JavaBean之间的转换, 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的 JavaBean 之间的相互转化, 非常的影响观感,却又不得不存在。我后来想的一个办法就是通过反射,或者自己写很多的转换器。 第一种通过反射的方法确实比较方便,但是现在无论是 BeanUtils, BeanCopier 等在使用反射的时候都会影响到性能。虽然我们可以进行反射信息的缓存来提高性能。但是像这种的话,需要类型和名称都一样才会进行映射,有很多时候,由于不同的团队之间使用的名词不一样,还是需要很多的手动 set/get