python字典的建立和输出_字典的创建和使用

直接创建

d = {'age': 23, 'name': 'Daniel', 'sex': 1}

输出结果:

{'age': 23, 'name': 'Daniel', 'sex': 1}

dict函数

# 通过序列对建立字典

vaulues = [('name', 'Daniel'), ('age', 23), ('sex', 1)]

print dict(values)

# 通过关键字建立字典

print dict(name='Daniel', age=23, sex=1)

# 如果 dict 不传入任何参数将会返回一个空字典

print dict()

输出结果:

{'age': 23, 'name': 'Daniel', 'sex': 1}

{'age': 23, 'name': 'Daniel', 'sex': 1}

{}

基本字典操作

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

# 返回d项中(键-值对)的数量

len(d)

# 删除键为name的项

del d['age']

# 检查d中是否含有键为name的项,返回True或者False

'name' in d

提示:在字典中检查键的成员资格比在列表中检查值的成员资格更高效,数据结构的规模越大,两者的效率差距越明显。

字典的键类型(任何不可变类型):int, float, string, tuple

{1: 'Daniel'} # int

{1.2: 'Daniel'} # float

{'name': 'Daniel'} # string

{('name', 'Daniel'): 23} # tuple

字典的格式化字符串

data = {'name': 'Daniel', 'age': 23, 'sex': 1}

template = 'name=%(name)s,age=%(age)s,sex=%(sex)s'

print template % data

template = 'name={name},age={age},sex={sex}'

print template.format(**data)

输出结果:

name=Daniel,age=23,sex=1

name=Daniel,age=23,sex=1

字典方法

1、clear 清除字典中所有项

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

d.clear()

print d

>>> {}

2、copy 返回一个具有相同键值对的新字典(这个方法实现的浅复制)

data1 = {'name': 'Daniel', 'machines': ['foo', 'bar', 'baz']}

data2 = data1.copy()

data1['name'] = 'biu'

data1['machines'].remove('bar')

print data1

print data2

输出结果:

{'name': 'Daniel', 'machines': ['foo', 'baz']}

{'name': 'biu', 'machines': ['foo', 'baz']}

浅复制说明:(待说明...)

3、deepcopy 返回一个具有相同键值对的新字典(这个方法实现的深复制)

from copy import deepcopy

data1 = {'name': 'Daniel', 'machines': ['foo', 'bar', 'baz']}

data2 = deepcopy(data1)

data1['name'] = 'biu'

data1['machines'].remove('bar')

print data1

print data2

输出结果:

{'name': 'biu', 'machines': ['foo', 'baz']}

{'name': 'Daniel', 'machines': ['foo', 'bar', 'baz']}

深复制说明:(待说明...)

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

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

# 如果不想使用None作为默认值,也可以自己提供默认值

print dict.fromkeys(['name', 'age'], 'null')

输出结果:

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

{'age': 'null', 'name': 'null'}

5、get 是一个更宽松的访问字典项的方法,访问一个不存在的键时,没有任何异常,而得到了None值。还可以自定义默认值,替换None

d = {}

print d.get('name')

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

d['name'] = 'Daniel'

print d.get('name')

输出结果:

None

N/A

Daniel

6、has_key 检查字典中是否含有给出的键,相当于表达式 k in d,使用那种方式很大程度取决于个人爱好。Python 3.0中不包含这个函数。

d = {}

print d.has_key('name')

d['name'] = 'Daniel'

print d.has_key('name')

输出结果:

False

True

7、items和iteritems

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

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

d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}

print d.items()

d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}

it = d.iteritems()

print it

print list(it)

输出结果:

[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python')]

[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python')]

8、keys和iterkeys,keys将字典中的键以列表形式返回,而iterkeys则返回针对键的迭代器

d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}

print d.keys()

print d.iterkeys()

输出结果:

['url', 'spam', 'title']

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

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

d.pop('age')

print d

输出结果:

{'name': 'Daniel', 'sex': 1}

9、popitem 弹出随机的项,因为字典并没有最后的元素或者其它有关顺序的概念

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

print d.popitem()

print d

输出结果:

('age', 23)

{'name': 'Daniel', 'sex': 1}

10、setdefault 类似于get方法,就是能够获得与给定键相关关联的值,还能在字典中不含有给定键的情况下设定相应的键值

d = {}

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

print d

d['name'] = 'Daniel'

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

print d

输出结果:

N/A

{'name': 'N/A'}

Daniel

{'name': 'Daniel'}

11、update 可以利用一个字典项更新另一个字典

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

x = {'name': 'biu'}

d.update(x)

print d

d.update(name='biubiu')

print d

提供的字典中的项会被添加到旧的字典中,若有相同的键则会进行覆盖

输出结果:

{'age': 23, 'name': 'biu', 'sex': 1}

{'age': 23, 'name': 'biubiu', 'sex': 1}

12、values和itervalues,values方法以列表的形式返回字典中的值,itervalues返回值的迭代器。与返回键的列表不同的是,返回值的列表中可以包含重复元素

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

print d.values()

输出结果:

[1, 2, 3, 1]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python字符串出栈方法_1.Python实现字符串反转的几种方法

1.Python实现字符串反转的几种方法题目: 在Python环境下用尽可能多的方法反转字符串,例如将s "abcdef"反转成 "fedcba"第一种:使用字符串切片result s[::-1]第二种:使用列表的reverse方法l list(s)l.reverse()result …

linux将日期和日历信息追加到文件中_Linux常用指令

常用指令 1、帮助指令 man [指令或者配置文件] help 指令 2、文件目录类指令 1、pwd 功能:显示当前工作目录的绝对路径 2、ls [选项] [目录或者文件] 功能:列出文件名和目录使用:ls -l 以列表的形式显示信息ls -a …

python播放音乐同步歌词_使用Python下载歌词并嵌入歌曲文件中的实现代码

使用python扫描本地音乐并下载歌词这次这个真的是干货哦,昨晚弄了半晚上,,,,从8点吃完饭就开始写,一直到了快12点才弄好,,,新手,伤不起呀。。。。先简单的说下…

ajax mysql点赞_php+mysql结合Ajax实现点赞功能完整实例

phpmysql结合Ajax实现点赞功能完整实例131415161718192021222324252627282930313233343536//判断是否已经存在了cookiefunction checkcookie(gindex){var thiscookie goodplus gindex;var mapcookie getCookie(thiscookie)if (mapcookie!null && mapcookie!"&q…

一个搜索框多个按钮_网站搜索栏设计指南:要不要?怎么设计?

在网站的设计过程中,搜索栏是一个很容易被忽略的部分,但用户却依赖它来寻找特定的信息。由于搜索栏是网站中最常用的元素之一,所以搜索栏的设计对用户体验有着重要的影响。网站是否需要搜索栏?搜索栏使用背后的思维和心理是帮助用…

mysql的使用优化问题吗_如何对 mysql 进行优化的问题

3641 天前mingszu-------------------------------------------------------------------------------------------------------------------------------------------------------------------| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Ca…

通过 xlsx 解析上传excel的数据

一、前言 在前端开发中,特别是在后台管理系统中,导入数据(上传excel)到后端是是否常见的功能;而一般的实现方式都是通过接口将excel上传到后端,再有后端进行数据解析并做后续操作。 今天,来记录…

状态机设计的一般步骤_浅谈状态机

来源:公众号【ZYNQ】ID :FreeZynq整理 :李肖遥本文目录前言状态机简介状态机分类Mealy 型状态机Moore 型状态机状态机描述一段式状态机二段式状态机三段式状态机状态机优缺点总结扩展-四段式状态机01. 前言状态机是FPGA设计中一种非常重要、…

java中default_Java 中关于default 访问权限的讨论

Java中关于成员变量访问权限问题一般书中会给出如下表格:简单地描述一下表中的内容:用private 修饰的成员变量只能在类内部访问;用default修饰的成员变量可以再内部访问,也可以被同个包(同一目录)中的类访问;default修…

python手机解释器_python3

Python解释器Linux/Unix的系统上,Python解释器通常被安装在 /usr/local/python3这样的有效路径(目录)里。我们可以将路径 /usr/local/python3/bin 添加到您的Linux/Unix操作系统的环境变量中(最好参照您python的安装路径进行添加),这样您就可以通过 shel…

increment java_Java中的increment()有什么作用?

publicclassThisTest{privateinti0;//第一个构造器:有一个int型形参ThisTest(inti){this.ii1;//此时this表示引用成员变量i,而非函数参数iSystem.out.println("Intconstructori—...public class ThisTest {private int i0;//第一个构造器&#xff…

python保存模块_Python使用Pickle模块进行数据保存和读取的讲解

pickle 是一个 python 中, 压缩/保存/提取 文件的模块,字典和列表都是能被保存的.但必须注意的是python2以ASCII形式保存,而在python3中pickle是使用转换二进制的数据压缩方法保存数据所以,在保存或者读取数据的时候,打开文件应该…

java 输出当月日历_java 实现打印当前月份的日历

实现当前日历的打印,当前日期用*来表示。关键得出这个月的第一天是星期几。基姆拉尔森计算公式W (d2*m3*(m1)/5yy/4-y/100y/400) mod 7在公式中d表示日期中的日数1,m表示月份数。y表示年数。注意1:在公式中有个与其它公式不同的地方&#xff…

pythonmessage用法_请问Mac下如何用python读取iMessage信息?

很早之前,学习Python web编程的时候,就涉及一个Python的urllib。可以用urllib.urlopen(“url”)。read()可以轻松读取页面上面的静态信息。但是,随着时代的发展,也来越多的网页中更多的使用javascript、jQuery、PHP等语言动态生成…

xmlhttprequest 跨域_跨域资源共享(CORS)安全性

跨域资源共享(CORS)安全性背景 提起浏览器的同源策略,大家都很熟悉。不同域的客户端脚本不能读写对方的资源。但是实践中有一些场景需要跨域的读写,所以出现了一些hack的方式来跨域。比如在同域内做一个代理,JSON-P等。但这些方式都存在缺陷&…

java 图片识别 tess4j_图像文字识别(四):java调用tess4j识别图像文字

转自:https://blog.csdn.net/a745233700/article/details/80203340javajava调用tess4j识别图像文字Tesseract-OCR支持中文识别,而且开源和提供全套的训练工具,是快速低成本开发的首选。前面记录过在java中调用tesseract-orc,该方法…

sql in转换为join_同一个SQL语句,为啥性能差异咋就这么大呢?(1分钟系列)

《数据库允许空值,往往是悲剧的开始》一文通过explain来分析SQL的执行计划,来分析null对索引命中情况的影响,有不少朋友留言,问explain结果中的type字段,ref,ALL等不一样的值究竟是什么含义。今天花1分钟简…

java rmi接口 超时设置_Spring RMI客户端读超时设置 | 学步园

标准Java的RMI设置我所知道的有三种方式,其中第1、2种不区分框架均适用,但影响整个JVM级别的RMI服务1. 启动时设置sun.rmi.transport.tcp.responseTimeout,单位是毫秒java -Dsun.rmi.transport.tcp.responseTimeout502.在应用程序中设置环境变…

python黑客库长安十二时辰 更新_【Python成长之路】python 从零学爬虫 -- 没时间看《长安十二时辰》电视剧怎么办?直接爬取所有剧情吧!...

【写在前面】最近大火的《长安十二时辰》真的是好看,算的是良心网剧了。但是由于平时工作时间较长,经常无法准时追剧,并且又因为不想见到元裁那对挨千刀的(作为演员,演技是值得肯定的,角色演绎的让人看的心烦)。因此就…

java字符串笔试题_五道Java常见笔试题及答案汇总

1、String和StringBuffer的区别?答:Java平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行…