第五篇:基本数据类型及用法(2)

1 info={"k1":"v1","k2":"v2"}
2 v=info.setdefault("k3",123)
3 print(info,v)
4 #结果:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: 123} 123

字典dict

1.字典的元素是键值对,各个元素用逗号分隔,基本结构如下:
info={"k1:v1","k2:v2"}

2.字典的键(key)只可以是数字,字符串,元祖,布尔值
注意:布尔值(False,True)为key时,可能与数字(0,1)作为key重复,只会承认数字那个key,例:

1 info={"k1":"v1",1:"v2",True:"v3"}
2 print(info)
3 #结果:{‘k1‘: ‘v1‘, 1: ‘v3‘}

3.值(value)可以是任意数据类型(数字,字符串,bool,列表,元祖,字典),可嵌套多次

4.字典是无序的

5.通过键取字典值,info[‘k1‘]
例:

1 info={"k1":18,2:True,"k3":[11,22,33,{‘kk1‘:‘vv1‘,‘kk2‘:‘vv2‘,‘kk3‘:(99,66)}],"k4":(11,22,33,44)}
2 v=info["k3"][3]["kk3"][0]
3 print(v)
4 #结果:99

6.字典支持元素删除(键值对),例:del info["k4"]

7.字典for循环默认循环的是key

-若想循环value,需要使用dict类的value()方法,例:

1 info={"k1":"v1",2:True,(12,"dd"):[1,2,3]}
2 for item in info.values():
3     print(item)
4 #结果:v1
5 #     True
6 #     [1, 2, 3]

-若要获取键值对,则使用dict类的item()方法,例:

1 info={"k1":"v1",2:True,(12,"dd"):[1,2,3]}
2 for k,v in info.items():
3     print(k,v)
4 #结果:k1 v1
5     # 2 True
6     # (12, ‘dd‘) [1, 2, 3]

8.字典dict类的方法:
-clear():清空所有键值对,例:

1 info={"k1":"v1","k2":"v2"}
2 info.clear()
3 print(info)
4 #结果:{}

-copy():拷贝一个字典,例:

1 info={"k1":"v1","k2":"v2"}
2 info2=info.copy()
3 print(info2)
4 #结果:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘}

-fromkeys():根据参数给的序列,创建字典,并指定统一的值。此方法是静态方法,可用类dict直接调用,无需创建对象。例:

1 v=dict.fromkeys([4,"abc",True],123)
2 print(v)
3 #结果:{4: 123, ‘abc‘: 123, True: 123}

-get():根据key获取值,key不存在时,返回参数2指定的值(不指定参数2,默认返回None),例:

1 info={"k1":"v1","k2":"v2"}
2 v=info.get("k3",444)
3 print(v)
4 #结果:444

-pop():指定某个key删除,返回删除的value,例:

1 info={"k1":"v1","k2":"v2"}
2 v=info.pop("k1",444)
3 print(info,v)
4 #结果:{‘k2‘: ‘v2‘} v1

若指定的key不存在,返回参数2指定的value值,例:

1 info={"k1":"v1","k2":"v2"}
2 v=info.pop("k3",444)
3 print(info,v)
4 #结果:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘} 444

-popitem():随机删除一个键值对,返回删除的键值对

1 info={"k2":"v2","k1":"v1","k3":"v3"}
2 k,v=info.popitem()
3 print(info,k,v)
4 #结果:{‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} k3 v3

-setdefault():指定key设置值
  若key已经存在,则不会设置值,返回当前key对应的值,例:

1 info={"k1":"v1","k2":"v2"}
2 v=info.setdefault("k1",123)
3 print(info,v)
4 #结果:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘} v1

若key不存在,添加key并设置值,返回设置后key对应的值,例:

1 info={"k1":"v1","k2":"v2"}
2 v=info.setdefault("k3",123)
3 print(info,v)
4 #结果:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: 123} 123

-update():存在的key,值覆盖,不存在的key,追加更新,例:

info={"k1":"v1","k2":"v2"}
info.update({"k1":1,"k3":3})
print(info)
#结果:{‘k1‘: 1, ‘k2‘: ‘v2‘, ‘k3‘: 3}
1 info={"k1":"v1","k2":"v2"}
2 info.update(k1=1,k3=3)
3 print(info)
4 #结果:{‘k1‘: 1, ‘k2‘: ‘v2‘, ‘k3‘: 3}

原文地址:https://www.cnblogs.com/hm-blog/p/9925981.html

时间: 2024-10-08 16:21:43

第五篇:基本数据类型及用法(2)的相关文章

Android JNI入门第五篇——基本数据类型使用

前面讲到了java和native数据类型,这里就开始做一下使用: 第一步:新建工程 第二部:书写 java方法: [java] view plaincopyprint? public class NativeMethod { static { System.loadLibrary("com_nedu_jni_jnidemo5-jni"); } public native boolean getBoolean(boolean b); public native byte getByte(

第五篇 函数进阶

目录 第五篇 函数进阶 一 闭包函数 二 装饰器 三 迭代器 四 三元表达式 五 列表推导式 六 字典生成式 七 生成器 八 递归 九 匿名函数 十 内置函数 第五篇 函数进阶 ==回顾基础== 函数对象:可以将定义在函数内的函数返回到全局使用,从而打破函数的层级限制. 名称空间与作用域:作用域关系在函数定义阶段时就已经固定死了,与调用位置无关,即在任意位置调用函数都需要跑到定义函数时找到作用域关系. 一 闭包函数 闭包 闭就是封闭(函数内部函数),包就是包含(该内部函数对外部作用域而非全局作用

【Python五篇慢慢弹(5)】‘类’过依然继续前行,直至ending再出发

‘类’过依然继续前行,直至ending再出发 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc入门资料包含了基本要点.本文是对文档常用核心要点进行梳理,简单冗余知识不再介绍,作者假使你用c/java/c#/c++任一种语言基础.本系列文章属于入门内容,老鸟可以略看也可以略过,新鸟可以从篇一<快速上手学python>先接触下python怎样安装与运行,以及pychar

第十五篇 Integration Services:SSIS参数

本篇文章是Integration Services系列的第十五篇,详细内容请参考原文. 简介在前一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级/转换到SSIS 2012.在这一篇,我们将探讨SSIS变量的姊妹:SSIS参数.我们将展示参数配置,通过包参数管理动态属性值,以及在SSIS包执行期间参数是如何配置和使用的.首先在SSDT-BI打开转换过的My_First_SSIS_Project,如图15.1所示:图15.1My_First_SSIS_P

SQL Server索引设计 &lt;第五篇&gt;

SQL Server索引的设计主要考虑因素如下: 检查WHERE条件和连接条件列: 使用窄索引: 检查列的选择性: 检查列的数据类型: 考虑列顺序: 考虑索引类型(聚集索引OR非聚集索引): 一.检查WHERE条件列和链接条件列 当一个查询提交到SQL Server时,查询优化器尝试为查询中引用的所有表查找最佳的数据访问机制.下面列出查询优化器针对WHERE和连接的工作方式: 优化器识别WHERE子句和连接条件中包含的列. 接着优化器检查这些列上的索引. 优化器通过从索引上维护的统计确定子句的选

第二十一篇 Java 数据类型的定义 ,以及基础类型的自动转换和强制转换

大家好,今天呢我吧我所学到的一些知识点共享给大家,希望大家看完之后,要是有什么不懂的,请随时联系我,要是觉得我写的不是很好的 ,还希望你们能够谅解一下,因为小弟我刚学会写博客也没多久,很多格式和方法都不是很完善,希望大家多多包涵,好了 废话就不多说了,来谈一下今天我所学到的一些知识点吧: 今天我主要是学到了一些Java中的数据类型,其中,Java中的数据类型分为俩类------基础数据类和逻辑数据类,下面我所介绍的都是基本数据类的一些分类,至于逻辑类,由于使用次数过少,所以今天就不再这里多做介绍

SOS 调试扩展 (SOS.dll) 《第五篇》

SOS调试扩展让你可以查看在公共语言运行时里面运行的代码的有关信息.例如,你可以使用SOS调试扩展显示托管堆的有关信息,查找堆的错误,显示运行时使用的内部数据类型,以及查看在运行时里面运行的所有托管代码的有关信息. 使用SOS调试扩展的办法是把它装入到WinDbg.exe调试器,或者Visual Studio 2005或它的更早版本.你能够在WinDgb.exe里或者在Visual Studio的即时窗口里面执行令来载入它. 在Windbg.exe中装载SOS的命令是: .loadby sos

NHibernate 集合映射深入 (第五篇) &lt;set&gt;,&lt;list&gt;,&lt;map&gt;,&lt;bag&gt;

NHibernate 集合映射深入 (第五篇) <set>,<list>,<map>,<bag> 一.集合外键 在NHibernate中,典型的用于映射集合类的元素有<set>,<list>,<map>,<bag>,<array>,<primitive-array>. 我们回到上一篇,集合映射基础当中的一对多查询.对于集合类型: public virtual ISet<Person

解剖SQLSERVER 第五篇 OrcaMDF里读取Bits类型数据(译)

原文:解剖SQLSERVER 第五篇 OrcaMDF里读取Bits类型数据(译) 解剖SQLSERVER 第五篇  OrcaMDF里读取Bits类型数据(译) http://improve.dk/reading-bits-in-orcamdf/ Bits类型的存储跟SQLSERVER其他定长数据类型的存储很不一样.通常,所有定长列都会显示出来,一个条记录里定长数据部分的字段数据总是一个挨着一个 我们可以写入磁盘的最小数据单位是一个字节,存储位类型数据的天真的方法就是使用一整个(字节@)来存储每一

Cocos2d-x3.0游戏实例之《别救我》第五篇——使用Cocostudio UI编辑器创建操作界面

这一篇内容其实很简单,已经对Cocostudio比较熟悉的朋友就可以随便扫一下了~(小若:熟悉Cocostudio的人谁还有空看你的基础教程呢) 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://www.benmutou.com/blog/archives/892 文章来源:笨木头与游戏开发 下载Cocostudio 首先,去官网下载最新版的Cocostudio:http://www.cocos2d-x.org/download 我这篇教程使用的版本是V1.3.0.1