Python学习笔记四--字典与集合

时间:2023-01-01 09:00:16

字典是Python中唯一的映射类型。所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列。字典是可变类型。字典中的数据是无序排列的。

4.1.1字典的创建及赋值

dict1={}
dict2={'name':John,'age':24}

使用dict()函数创建字典。

dict()函数接受序列,或关键字参数作为参数创建字典。若不提供参数则创建空字典。

dict1=dict([['x',1],['y',2]])#接受list作为参数创建字典
dict2=dict(x=1.y=2)#接受关键字参数作为参数

使用内建方法fromkeys()来创建一个“默认字典”,该字典中的键均对应相同的值,如果值未给出则为None。

dict1={}.fromkeys(('x','y'),1)
dict1
>>>{'y':1,'x':1}

4.1.2字典中值得访问

通过字典中的键访问值。

info={'name':'bing','age':24,'sex':'male'}
info['name']
>>>'bing'

Python中默认通过访问键来获取值。

info={'name':'bing','age':24,'sex':'male'}
for key in info:
print 'key=%s,value=%s'%(key,info[key])
>>>
key='age',value=''
key='name',value='bing'
key='sex',value='male'

4.1.3更新字典

对字典的更新包括以下操作,增加一个“键-值”对,删除字典元素,清除字典中所有或个别条目,修改某个元素的值。下面举例说明。

info={'name':'bing','age':24,'sex':'male'}
info['name']='xiaobing'#更新已有条目
info['addr']='lanzhou'#增加新条目

对字典的删除一般指删除某个“键-值”对,删除整个字典会用到del语句。

del info['name'] #删除dict中键为name的条目
info.clear() #清空字典所有条目
del info #删除整个字典
info.pop(‘name’)#返回并删除键为name的条目

4.2.1映射类型的操作符

1、字典查找操作符:[]

使用方法dict[k]=n,将n赋值给dict中键为k的条目;dict[k],访问dict中键为k的条目。

2、成员关系操作符:(in,not in)

dict1={'name':'bing','age':24,'sex':'male'}
'name' in dict1
>>>True
'phone'in dict1
>>>False

需要注意的是in和not in仅作为检查某个键是否在字典中。

4.3.1相关函数

1、dict(),用来创建字典,前面说过不再赘述。

2、len(),返回字典长度,即字典中的“键-值”对个数

3、hash(),判断某个对象是否可以做字典的键。讲一个对象传递给hash(),会返回这个对象的哈希值,只有这个对象是可哈希的才可以作为字典的键。

4.4.1字典的内建方法

下面会提到字典的一些内建方法,其余的请在有需要是查阅文档。

1、dict.keys(),返回一个列表包含字典中的所有键。

2、dict.values(),返回一个列表包含字典中的所有值。

3、dict.items(),返回一个由(键,值)元组作为元素的列表。

4、dict.clear(),删除字典中所有元素。

5、dict.copy(),返回字典的一个副本(浅复制)。

6、dict.update(dict2),将字典dict2的键-值对添加到dict。

4.5.1对字典中键的一些说明

1、键不允许一对多,类似映射中两个集合的对应关系。

2、键必须是可哈希的,所有不可变类型都是可哈希的故可作为键,可变类型不可哈希即不可作为键,如列表,字典类型。

4.6集合数据类型

数学上把集合称作不同元素的集合,集合(set)成员被称为集合元素。集合对象是一组无需可哈希的值。集合支持 in,not in 检查操作符,用len得到集合大小(元素个数),但集合无法创建索引因为集合是无需排列。集合有不同两种类型,可变集合(set)和不可变集合(frozenset)。

4.6.1集合的创建

集合只能通过它的工厂方法创建

s=set('python')
s
>>>set(['y','o','n','t','p','h'])
type(s)
>>> <type,'set'>

4.6.2集合元素的操作

可以遍历查看集合元素

s=set('python')
p in s
>>>True
x in s
>>>False
for i in s
print i
>>>
y
o
n
t
p
h

通过集合的内建方法和操作符增加或删除集合元素:

1、set.add(),向集合添加新元素

2、set.update(),集合的合并

3、set.remove(),删除集合中元素

4.7集合成员关系操作

对于集合真正重要的是成员关系及子集的关系操作。

1、成员关系in,not in。

判断一个元素是否在一个集合中,返回True 或者False。

2、等价与不等价==,!=

集合等价指两个集合中每个元素都相同

3、真子集与子集(<,<=)

4、并集

符号|或者union()方法。

5、交集

符号&或者等价方法intersection()

6、差集

符号-或者等价方法difference()

Python学习笔记四--字典与集合的更多相关文章

  1. Python学习笔记004&lowbar;字典&lowbar;集合

    >>> # 字典 用大括号表示, 它是影射类型,相当于java中的Map >>> >>> dict1 = {'李宁': '一切皆有可能', '耐克 ...

  2. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  3. python学习笔记&lpar;四&rpar;&colon;函数

    一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pasc ...

  4. PYTHON 学习笔记3 元组、集合、字典

    前言 在上一节的学习中.学习了基本的流程控制语句,if-elif-else for while 等,本节将拓展上一节学习过的一些List 列表当中操作的一些基本方法,以及元祖.序列等. 列表扩展 我们 ...

  5. python学习笔记&colon;文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  6. 【Python学习笔记】字典操作

    字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...

  7. python学习笔记&lpar;四&rpar;、条件、循环及其他语句

    1 再谈print和import 1.1 打印多个参数 print 能够同时打印多个表达式,并且能自定义分隔符.如下: print('a','b','c') ——> a b c print('a ...

  8. python学习笔记八——字典的方法

    4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"appl ...

  9. python学习笔记七——字典

    4.3 字典结构 字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用. 4.3.1 字典的创建 字典由一系列的“键-值”(key-value)对组成,“ ...

随机推荐

  1. ASCII字符集中的功能&sol;控制字符

       ASCII字符集中的功能/控制字符     Function/Control Code/Character in ASCII Version: 2011-02-15 Author: gree ...

  2. 转载:C&num;中的泛型

    泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性.泛型为.NET框架引入了类型参数(type parameters)的概念.类型参数使得设计类和方法时,不必确定一个或多个具 ...

  3. IIS URL Rewrite redirect from one Domain to another

    IIS URL Rewrite enables Web administrators to create powerful rules to implement URLs that are easie ...

  4. javascript中argument1 &equals;&equals;&equals; void 0的意思

    今天看代码时看到 if (argument1 === void 0 || typeof argument1 === 'object') { 啥意思? 概述 void 运算符会对它的操作数表达式进行求值 ...

  5. HDU1285 确定比赛名次

    有N个比赛队(<=N<=),编号依次为1,,,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结 ...

  6. DBCP 连接池

    DBCP数据源 DBCP 是 Apache 软件基金组织下的开源连接池实现 导入maven包: <!-- dbcp连接池 --> <dependency> <groupI ...

  7. JS运算符问题

    以下代码是否报错,如果不报错输出什么,为什么 var x = !!"Hello" + (!"world", !!"from here!!") ...

  8. Jmeter的察看结果树 出现乱码的解决方法

    在apache-jmeter-3.0\bin目录下, 用Notepad工具打开jmeter.properties文件 在文件中搜索encoding,可以搜素到1030行: #sampleresult. ...

  9. Python有趣时刻,这些代码让你大呼&quot&semi;卧槽,怎么会这样&quot&semi;

    分享一个实用问题,用python读取Excel并保存字典,如何做? 下面是该同学问题截图和代码 image.png 代码截图是下面这样的 image.png 不知道大家第一眼看了这个代码,什么感受?我 ...

  10. AIX安装JDK1&period;7教程

    1.下载 下载链接(下载需要登录IBM账号):https://www.ibm.com/developerworks/java/jdk/aix/service.html#i1 由于jdk版本AIX操作系 ...