Python字典基本操作
希望对你有帮助,陌生人
字典的创建:
- phonebook = {'Alice':'2341','Beth':'9102','zdf':'1821355'}
- items = [('name','Gunmby'),('age',42)]
d = dict(items)- d = dict(name='Gumby',age=43)
字典的操作
取大小:len(d)
d[k]=v :赋值 or 添加值
del d[k]:删除键值对
k in d :检查是否包含该键
例
把数据通过类似于JSON格式的方式存储起来,输入需要的信息就能查找到你要的值;我的名字是ZDF,我要查找的是电话号码,这样需要查的数据的键已经有了,通过这个键就可以在字典中取到相应的数据。
people = { 'Alice':{ 'phone':'2314', 'addr':'Foo drive 23' }, 'ZDF':{ 'phone':'1821355', 'addr':'wenshan' } } labels = { 'phone':'phone number', 'addr' :'address' } name = raw_input('Name: ') request = raw_input('Phone number (p) or address (a)? ') if request == 'p' : key = 'phone' if request == 'a' : key = 'addr' if name in people : print "%s's %s is %s." % (name,labels[key],people[name][key])
字典的格式化字符串
template = '''<html> <head><title>%(title)s</title> </head> <body> <h1>%(h1)s</h1> <p>%(text)s</p> </body> </html> ''' >>> template '<html>\n<head><title>%(title)s</title>\n</head>\n<body>\n<h1>%(h1)s</h1>\n<p>%(text)s</p>\n</body>\n</html>\n' data = {'title':'this is dict','h1':'dict','text':'my name is zdf'} print template % data
字典方法
clear():清空字典
copy() :潜复制,字典中有列表不能完全复制,而是共同指向一个列表,这样进行修改列表的操作实际是对同一个列表进行操作
deepcopy()深复制,字典中列表各自指向各自的列表
get(key,defalut):访问不存在的值不会报错,会返回默认值,第二个参数就是当访问的key值不存在时返回第二个参数中的值
setdefault:和get有点类似,但是它还能在字典中不含给定键的情况下设定相应的键值
has_key(key):d.has_key(k) 相当于表达式 k in d 注:python3不包括这个函数
fromkeys():创建列表的另一种方法
items():将字典所有项以列表方式放回,无顺序
keys():将字典中所有key值以列表形式返回
values():返回字典中的所有value
iteritems() :返回的是一个键值迭代器(注:python3不包括这个函数)
iterkeys():返回的是一个键迭代器(注:python3不包括这个函数)
itervalues():返回的是一个迭代器(注:python3不包括这个函数)
pop(key):用来获得对应给定的键值,然后从字典中删除。
popitem():随机弹出字典里的键值对
update(dict)将一个字典项更新到另一个字典中,如果存在,直接复制;否则添加新的键值对。
例
fromkeys()
{}.fromkeys(['name','age']) {'age': None, 'name': None} dict.fromkeys(['name','age']) {'age': None, 'name': None} dict.fromkeys(['name','age'],'1') {'age': '1', 'name': '1'}
update(dict)
>>> d = {}.fromkeys(['gender','age'],'1') >>> z = {}.fromkeys(['name','age'],'1') >>> z.update(d) >>> z {'gender': '1', 'name': '1', 'age': '1'} >>> d {'gender': '1', 'age': '1'}
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python文件和流
Treasuring every moment open函数 open(name[,mode[,buffering]]) mode有四种模式可选择: 'r' 读模式 'w' 写模式 'a' 追加模式 'b' 二进制模式(可添加到其他模式中使用) 'rb' 可读二进制模式 '+' 读/写模式 写 >write():参数为写入的内容 >>> f = open('somefile.txt','w') f.write('Hello, ') 7 >>> f.write('World!') 6 >>> f.close() >writelines():参数为一个字符串列表,它会把所有的字符串写入文件,但不会增加新的行 读 read():参数为指定读多少字符(字节) >>> f = open('somefile.txt','r') >>> f.read(4) 'Hell' >>> f.read(1) 'o' >>> f.read() ', World!' readl...
- 下一篇
深入 Java 核心
类加载 类加载负责加载编译后的class文件(字节码文件)到JVM当中。 在JRE中,类加载器主要分为以下几种: 引导类加载器(Bootstrap) 它本身使用C/C++语言实现的,负责加载Java的核心类库,在jre\lib目录中,当中包括如rt.jar,这些都是Java自带的核心类库,必须由它来完成加载。 拓展/扩展类加载器(Extension) 这个加载器就是由Java语言实现,负责加载jre\lib\ext目录下的类库,这个目录下的类库都是一些扩展类。 应用程序/系统类加载器(Application) 这个类加载器同样使用Java语言实现,它主要负责加载classpath下面的所有类库,通常我们编写的Java类都是由这个类加载器完成加载。 三个类加载器的初始化过程:当程序运行时,首先会初始化引导类加载器,它就负责创建和初始化扩展类加载器,当扩展类加载器完成初始化之后,又负责创建和初始化系统类加载器。 这些类加载器协同起来完成整个类加载的过程,因此这些类加载器的加载模式是基于“双亲委托模型”。 举例说明 当我们编写一个Java类时,首先负责加载这个类的加载器是系统类加载器,但是它...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范