字典是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_字典_集合

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

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

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

  3. python学习笔记(四):函数

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

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

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

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

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

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

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

  7. python学习笔记(四)、条件、循环及其他语句

    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. C字符数组及其应用

    1.字符数组和其他数值类型的数组的定义引用和初始化都是相同的. 特别注意的是: 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串. \0'是由C编译系统自动加上的. 2. C语言允许 ...

  2. Java---实现运行任意目录下class中加了@MyTest的空参方法(实现图形界面)

    说明: 因为上个代码,总是要输入完整的绝对路径,比较麻烦,于是,就写了这个小程序,直接进入文件对话框选择需要运行的class文件. 只需要提前输入完整的类名. 注意:加的MyTest必须打个包,加上: ...

  3. HDOJ(HDU) 2162 Add ‘em(求和)

    Problem Description Write a program to determine the summation of several sets of integers. Input Th ...

  4. 《傲慢与偏见》(Pride and Prejudice)

    <傲慢与偏见>(Pride and Prejudice)改编自英国作家简·奥斯汀的同名小说,1940年上映.讲述了19世纪初期英国的一个普通的中产家庭中五姐妹的爱情与择偶故事.片中因为男主 ...

  5. Mac下Intellij IDea发布Java Web项目详解四 为所有Module配置Tomcat Deployment

    准备工作1:新建第一个JavaWeb项目 准备工作2:新建Module step5 为所有项目配置Deployment 5.1 如图 5.2 [+][Artifact] 5.3 将这里列出的所有内容选 ...

  6. lightoj 1291 无向图边双联通+缩点统计叶节点

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1291 #include<cstdio> #include<cstri ...

  7. Linux 数学运算

    let 命令 a= b= let c=a+B echo $c let a++ let b++ echo $a $b []方法 a= b= echo $[a+b] echo $[$a+$b] (()) ...

  8. eclipse下开发简单的Web Service

    service部分 在eclipse下新建一个动态web项目 在项目中新建一个service类 编写SayHello类的代码 package org.sunny.service; //包不要引用错了 ...

  9. POJ1184-------操作分离的BFS

    题目地址:http://poj.org/problem?id=1184 题目意思: 给你两个6位数,一个是起始值,一个最终值 初始光标在最左边 你可以左移或者右移光变 在光标处+1或者-1 在光标处和 ...

  10. Facebook Hacker Cup 2015 Round 1--Homework(筛选法求素数)

    题意:给定A,B,K(A<=B)三个数,问在[A,B]范围内的数素数因子个数为K的个数. 题解:典型的筛选法求素数.首先建立一个保存素数因子个数的数组factorNum[],以及到n为止含有素数 ...