Python学习笔记之字典

一、创建和使用字典

1、创建字典

phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'}

 

2、dict,通过映射创建字典

>>> items=[('name','Gumby'),('age',34)]

>>> d=dict(items)

>>> d

显示:{'name':'Gumby','age':'34'}

dict,通过关键字创建字典

>>> d=dict(name='Gumby',age=34)

>>> d

显示:{'name':'Gumby','age':'34'}

 

3、字典格式化字符串

>>> phonebook{'Beth':'9102','Alice':'2334','Cecil','3258'}

>>> "Cecil's phone number is %(Cecil)s." % phonebook

显示:"Cecil's phone number is 3258"

 

4、clear,清除字典中的全部项

5、copy,返回一个具有相同键-值对的新字典,这个方法实现的是浅复制

>>>x={'username':'admin','machines':['foo','bar','baz']}

>>>y=x.copy()

>>>y['username']='mlh'

>>>y['machines'].remove('bar')

>>>y

显示:{'username':'mlh','machines':['foo','baz']}

>>>x

显示:{'username':'admin','machines':['foo','baz']}

注意两个结果的区别:在副本y中替换username的值不会改变x中的值,但是修改副本y中的machines的值,则会改变x中的值

deepcopy,深度复制,可以解决上面的问题

>>> from copy import deepcopy

>>> d={}

>>> d['names']=['Alfred','Bertrand']

>>> c=d.copy()

>>> dc=deepcopy(d)

>>> d['names'].append('Clive')

>>> c

显示:{'names':['Alfred','Bertrand','Clive']}

>>> dc

显示:{'names':['Alfred','Bertrand']}

 

6、fromkeys,使用给定的键建立新的字典

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

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

采用dict的方法创建字典

>>> dict.fromkeys(['name','age'],'(123)') #默认值是可选的

显示:{'name':'123','age':'123'}

 

7、get,用来访问字典项

>>> d={}

>>> print(d['name']) #此时会报错,说name键不存在

>>>print(d.get('name')) #此时不会报错,输出None

>>> print(d.get('name','N/A')) #还可以指定默认值

 

8、has_key,检查字典中是否含有指定的键,在V2.6之后,V3.0之前有用,

>>> d={}

>>> d.has_key('name')

显示: False

从V3.0开始,采用in的方式判断

>>> 'name' in d

显示:False

 

9、items,返回一个迭代器对象

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

>>> d.items()

显示:dict_items([('url','http://www.python.org'),('title','Python Web Site'),('spam',0)])

 

10、pop,将指定的键-值对从字典中删除

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

>>> d.pop('x')

显示:1

>>> d

显示:{'y':2}

 

11、popitem,弹出随机项

12、setdefault,在某种程度上类似于get,并且还能在字典中不含有给定键的情况下设定相应的键值

>>> d={}

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

显示:'N/A'

>>> d

显示:{'name','N/A'}

>>> d['name']='Gumby'

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

显示:'Gumby'

>>> d

显示:{'name':'Gumby'}

 

13、update,可以利用一个字典更新另一字典

>>> d={

  'title':'Python Web Site',

  'url':'http://www.python.org',

  'changed':'Mar 14 22:09:15 MET 2008'

}

>>> x={'title':'Python Language WebSite'}

>>> d.update(x)

>>> d

显示:

{

  'title':'Python Language Website',

  'url':'http://www.python.org',

  'changed':'Mar 14 22:09:15 MET 2008'

}

 

14、Values,返回值的迭代器

>>> d={}

>>> d[1]=1

>>> d[2]=2

>>> d[3]=3

>>> d[4]=1

>>> d.values()

显示:dict_values([1,2,3,1])

 

转载于:https://www.cnblogs.com/xiaofoyuan/p/5531269.html

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

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

相关文章

iOS UI基础-7.0 UIScrollView

概述 移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限.当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容,普通的UIView不具备滚动功能,不能显示过多的内容。UIScrollView是一个能…

【ArcGIS风暴】缓冲区分析、叠置分析综合实验案例:购房区域的选择

实验平台:ArcGIS 9.3实验目的:熟练掌握A rcGIS缓冲区分析和叠置分析操作,综合利用各项空间分析工具解决实际问题。实验要求:对每个条件进行缓冲区分析,运用空间叠置分析对多个图层叠加,并分等级,确定合适的区域。实验数据:ArcEx8实验步骤打开ArcMap,加载数据ArcEx8,如…

[python opencv 计算机视觉零基础到实战] 四、了解色彩空间及其详解

一、学习目标 了解什么是色彩空间了解opencv中色彩空间的转换 目录 [python opencv 计算机视觉零基础到实战] 一、opencv的helloworld [【python opencv 计算机视觉零基础到实战】二、 opencv文件格式与摄像头读取] 一、opencv的helloworld [[python opencv 计算机视觉零基…

java gui 按键 数组_java GUI分配数组值

好的,所以这是一个非常基本的例子.它需要更多的工作和优化,但应该让你朝着正确的方向前进import java.awt.Color;import java.awt.Dimension;import java.awt.EventQueue;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Point;import java.awt.Shape;im…

Android之如何实现阿拉伯版本(RTL)的recycleView的网格布局

1 问题 比如正常的recycleView的网格布局效果如下 1 2 34 5 67 8 现在需要变成这样的效果 3 2 16 5 48 7 2 思考过程和尝试解决方法 1)从recycleView上直接分析,看有没有相关的方法变成这个格式,网上百度了,基本上找不到 2)既然recycleView里面有常见的几种布局设置,…

poj1189 简单dp

http://poj.org/problem?id1189 Description 有一个三角形木板,竖直立放。上面钉着n(n1)/2颗钉子,还有(n1)个格子(当n5时如图1)。每颗钉子和周围的钉子的距离都等于d,每一个格子的宽度也都等于d,且除了最左端和最右端…

WPF|如何在 WPF 中设计漂亮的社交媒体信息仪表板

1. 效果展示先来直接欣赏效果:2. 准备创建一个WPF工程,比如站长使用 .NET 7[1] 创建名为 Dashboard3 的WPF项目,添加一些图片资源,项目目录如下:2.1 图片资源可在网站 iconfont[2] 下载 关闭、最小化 图标,…

CentOS 设置服务开机启动的方法

为什么80%的码农都做不了架构师?>>> CentOS设置服务开机启动的两种方法 1、利用 chkconfig 来配置启动级别 在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd、mysqld、postfix等,安装后系统默认不会自动启…

【ArcGIS风暴】水文分析模块实验:山脊线和山谷线提取

实验平台:ArcGIS 9.3实验目的:学习和掌握山脊线和山谷线提取的原理及方法实验要求:利用ArcGIS水文分析模块提取样区的山脊线和山谷线实验数据:Ex1实验步骤:1.正负地形的提取 (1)打开Arcmap,加载数据EX1,如图 (2)平滑处理(均值滤波)。加载Spatial Analyst模块,单击…

[python opencv 计算机视觉零基础到实战] 五、对象追踪

一、学习目标 了解为什么色彩空间的转换那么重要了解opencv中进行对象跟踪的方法 目录 [python opencv 计算机视觉零基础到实战] 一、opencv的helloworld [【python opencv 计算机视觉零基础到实战】二、 opencv文件格式与摄像头读取] 一、opencv的helloworld [[python op…

Android之用glide加载gif图片静态展示

1 问题 图片是gif动图,我们需要获取第一帧的静态图片并且展示。 2 解决办法 public void changeGifToPicture(NonNull Context context, NonNull String url, NonNull ImageView imageView) {Glide.with(context).asBitmap().load(url).into(new BitmapImageViewTa…

flex java框架_fleXive——JavaEE框架

fleXive——JavaEE框架fleXive是一个开源的JavaEE框架,基于LGPL许可证,最新版本3.0RC1,它基于EJB3,并带有补充的JSF组件库,具有灵活性和可扩展性。它主要致力于企业级(Enterprise-scale)内容建模、存储和检索&#xff…

【ArcGIS风暴】在ArcGIS中实现将一个圆16等分

本文实现在ArcGIS中画一个圆,然后将其16等分。 步骤一:生成圆(多边形图层) (1)创建一个点图层(图名Center),如果需要精确定位该点,建议通过输入坐标点的方式来创建,这一步比较简单,不再详述; (2)利用Buffer命令创建缓冲区(图名Circle_2km),因为要处理的对象…

iOS UIViewContentMode 使用详解

iOS在处理图片的时候,会出现拉伸变形的情况,可以根据UIViewContentMode的属性,来控制图片 UIViewContentMode包含以下枚举值 UIViewContentModeScaleToFill :拉伸自适应填满整个视图 UIViewContentModeScaleAspectFit :自适应打下比例显示 UIViewContentModeScaleA…

二进制安装mariadb-10.2.8

centos7.3上二进制安装mariadb-10.2.8-linux-x86_641、查看是否安装mariadbrpm -qa mariadb*如果已经安装就卸载。2、下载mariadb最新版本yum info mariadb官网地址:http://mariadb.org 下载:mariadb-10.2.8-linux-x86_64.tar.gz3、创建mysql用户rpm 安…

MiniAPI:.NET7 Preview4之MiniAPI更新总览

一觉醒来,发现微软带来了.NET7 Preview4的更新,本次更新关于MiniAPI的还不少,难以掩饰的喜悦心情,促使我尽快把这个消息分享给大家,那下来我们看一下一共带来了哪些关于MiniAPI的更新:返回值带来了TypedRes…

[python opencv 计算机视觉零基础到实战] 六、图像运算

一、学习目标 了解opencv中图像运算的方法了解opencv中图像运算的运用 如有错误欢迎指出~ 二、了解OpenCV中图像运算的运用 目录 [python opencv 计算机视觉零基础到实战] 一、opencv的helloworld [【python opencv 计算机视觉零基础到实战】二、 opencv文件格式与摄像头…

Android之SubsamplingScaleImageView加载长图不能放缩问题

1 问题 第三方开源框架用了这个第三方开源框架(SubsamplingScaleImageView)加载长图,但是源代码在有些手机上面不能进行放缩。 private void displayLongPic(Uri uri, SubsamplingScaleImageView longImg) {longImg.setQuickScaleEnabled(tr…

java barrier_Java并发类CyclicBarrier方法详解

Cyclic是周期的意思,Barrier是关卡的意思。CyclicBarrier不仅有CountDownLatch的功能,还可以实现屏障等待,即阶段性同步。因此适用于,需要循环地实现线程一起做任务的目标。CyclicBarrier允许一组线程相互等待,直到到达…

【ArcGIS风暴】实验:公路建设成本的计算

实验平台:ArcGIS 9.3实验目的:学习和掌握公路建设成本的计算方法实验要求:熟练掌握如何生成通行成本层、计算成本距离,并学会计算最佳路径,且对成本距离与直线距离进行比较。实验数据:ArcEx7实验步骤:生成通行成本层1.打开Arcmap,加载数据ArcEX7,如图 2.执行spatial …