1.13 Python基础知识 - 字典和集合
一、字典
字典是一组键-值对的数据结构。每个键对应一个值。在字典中,键不能重复。根据键可以查询到值。字典是键和值的映射关系
字典的定义:
字典通过花括号中用逗号分隔的元素(键-值。键-值对使用冒号分隔),格式如下:
{键1:值1,[键2:值2,...,键n:值n]}
# 值可以为任意对象。字典中的键是唯一的,不能重复。
字典也可以通过创建dict对象来创建,格式如下:
# 创建一个空字典
dict() # 使用关键字参数,创建一个新的字典
dict(**kwargs) # 从一个字典对象创建一个新的字典
dict(mapping) # 使用序列,创建一个新的字典
dict(iterable)
1、字典的访问操作,基本格式:
# 返回键为key的value;如果ket不存在,则导致KeyError
d[key] # 设置d[key]的值为value;如果key不存在,则添加键/值对
d[key]=value # 删除字典元素;如果ket不存在,则导致KeyError
del d[key]
2、动态访问字典的数据
d.keys:返回字典d的键key的列表
d.values:返回字典d的值values的列表
d.items():返回字典d的(key,value)对的列表
3、判断字典键是否存在
# 如果为True,则表示存在
key in d
# 如果为True,则表示不存在
key not in d
4、字典对象的方法
我们定义一个字典:
d = {1:'food',2:'drink',3:'fruit'}
# 删除所有元素
d.clear()
print(d) # 输出结果 {}
# 浅拷贝字典
d1 = d.copy()
print(d)
print(d1) # 输出结果 {1: 'food', 2: 'drink', 3: 'fruit'}
{1: 'food', 2: 'drink', 3: 'fruit'}
#返回键k对应的值,如果key不存在,返回None
print(d.get(1))
print(d.get(5)) # 输出结果 food
None
#返回键k对应的值,如果key不存在,返回v
print(d.get(1,'无'))
print(d.get(5,'无')) # 输出结果 food
无
# 如果键k存在,返回其值,并删除该元素;否则导致KeyError
print(d.pop(1))
print(d) # 输出结果
food
{2: 'drink', 3: 'fruit'}
# 如果键k存在,返回其值,并删除该元素;否则返回v
print(d.pop(5,'无'))
print(d) # 输出结果 无
{1: 'food', 2: 'drink', 3: 'fruit'}
# 如果键k存在,返回其值;否则添加元素k=v,v默认为None
print(d.setdefault(1)) print(d.setdefault(4))
print(d) # 输出结果 food
None
{1: 'food', 2: 'drink', 3: 'fruit', 4: None}
# 使用字典或键值对,更新或添加元素到字典d
d1 = {1:'食物',4:'书籍'}
d.update(d1)
print(d) # 输出结果 {1: '食物', 2: 'drink', 3: 'fruit', 4: '书籍'}
二、集合
集合数据类型是没有顺序的简单对象的聚合,且集合中元素不重复。
集合的定义:花括号中用逗号分隔元素进行定义的,格式如下:
{x1,[x2,...,xn]}
也可以通过set对象方法创建集合,格式如下:
set():创建一个空的集合
set(iterable):创建一个集合,包含的元素为可枚举对象iterable中的元素
1、判断集合元素是否存在
判断一个元素x是否在集合s中,方法如下:
x in s :如果为True,则表示存在
x in not s :如果为True,则表示不存在
s = set('hello')
print('h' in s )
print('H' not in s)
# 输出结果
True
True
2、集合的运算:并集、交集、差集和对称差集
1)并集
s1 = {1,2,3}
s2 = {2,3,4}
# 对象方法
print(s1.union(s2))
# 运算符方法
print(s1 | s2)
# 输出结果
{1, 2, 3, 4}
{1, 2, 3, 4}
2)交集
s1 = {1,2,3}
s2 = {2,3,4}
# 对象方法
print(s1.intersection(s2))
# 运算符方法
print(s1 & s2)
#输出结果
{2, 3}
{2, 3}
3)差集
s1 = {1,2,3}
s2 = {2,3,4}
# 对象方法
print(s1.difference(s2))
#运算符方法
print(s1 - s2)
#输出结果
{1}
{1}
4)对称差集
s1 = {1,2,3}
s2 = {2,3,4}
# 对象方法
print(s1.symmetric_difference(s2))
#运算符方法
print(s1 ^ s2)
# 输出结果
{1, 4}
{1, 4}
3、集合的比较运算:相等、子集和超集(又称父集)
1)相等
s1 = {1,2,3}
s2 = {2,3,4}
print(s1 == s2)
print(s1 != s2)
# 输出结果
False
True
2)子集
s1 = {1,2,3}
s2 = {3,2,1}
s3 = {1,2}
s4 = {7,9}
# 对象方法
print(s3.issubset(s1))
# 运算符方法
print(s3 < s1)
输出结果
True
True
3)超集
s1 = {1,2,3}
s2 = {3,2,1}
s3 = {1,2}
s4 = {7,9}
# 对象方法
print(s2.issuperset(s3))
#运算符方法
print(s2 > s3)
#输出结果
True
True
4、集合的其他方法
1)更新
s1 = {1,2,3}
s2 = {2,3,4}
s1.update(s2)
print(s1)
# 输出结果
{1, 2, 3, 4}
2)添加
s1 = {1,2,3}
s1.add('a')
print(s1)
# 输出结果
{1, 2, 3, 'a'}
3)删除
remove
s1 = {1,2,3}
# 从集合中删除元素1,若不存在,则导致KeyError
s1.remove(1)
print(s1)
#输出结果
{2, 3}
discard
s1 = {1,2,3}
# 从集合中删除元素3,若不存在,不做任何操作
s1.discard(3)
print(s1)
#输出结果
{1, 2}
pop
s1 = {1,2,3}
# 从集合中随机弹出一个元素,如果s为空,则导致KeyError
s1.pop()
print(s1)
#输出结果
{2, 3}
1.13 Python基础知识 - 字典和集合的更多相关文章
- python基础之字典、集合
一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...
- Python基础知识---字典
现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典: key --> valu ...
- Python基础__字典、集合、运算符
之前讨论的字符串.列表.元组都是有序对象,本节则重点讨论无序对象:字典与集合.一.字典 列表是Python中的有序集合,列表中的序指的是列表中的元素与自然数集形成了一个一一对应的关系.例如L=['I' ...
- Python基础知识--列表和集合
列表:有序性,可以存放任意类型的对象,通过索引访问,可以分片操作 >>> L = ['id', 1000, 'scd', 1000, 'scd'] >>> L [' ...
- python基础知识梳理----6set 集合的应用
集合内容简介: set 一: 集合简介 集合set集合是python的一个基本数据类型.一般不是很常用set.中的元素是不重复的.无序的.里里面的元素必须是可hash的tuple,bool),str, ...
- Python基础知识(六)------小数据池,集合,深浅拷贝
Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : 一个文 ...
- python基础之字典dict和集合set
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- Python基础知识(五)------字典
Python基础知识(四)------字典 字典 一丶什么是字典 dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 键: 必须是可哈希,(不可变的数据类型 ...
随机推荐
- Oracle 排序中 nulls first 与 nulls last 的用法
Nulls first和nulls last是Oracle Order by支持的语法 如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 ...
- JSP中 input type 用法
JSP中 input type 用法 Input表示Form表单中的一种输入对象,其又随Type类型的不同而分文本输入框,密码输入框,单选/复选框,提交/重置按钮等,下面一一介绍. 1,type=te ...
- 紫书 例题 9-1 UVa 1025 ( DAG的动态规划)
影响到状态的只有时间和在哪个车站(空间),所以可以设f[i][j]是时刻i的时候在第j个车站的最少等待时间 因为题目中的等待时间显然是在0时刻1车站,所以答案为f[0][1],那么就提醒我们从大推到小 ...
- 实验记录三 通用输入输出(GPIO)
之前把全部程序都跑了一次后,得到了导师下一步的安排. 例如以下: 1.编写一个程序.实如今LCD上显示一个万年历,包含年月日 星期 还有室内的温度.2.编写一个程序,将原来的交通灯改为跑马灯. 期限是 ...
- java对象和json数据转换实现方式1-使用json-lib实现
測试代码: package com.yanek.util.json; import java.util.ArrayList; import java.util.List; import net.sf. ...
- 流媒体技术 rtp/rtcp/rtsp资料精华!
流媒体技术 rtp/rtcp/rtsp资料精华! 流媒体技术 流媒体是指在网络中使用流式(Sreaming)传输技术进行传输的连续时基媒体.如音频数据流或视频数据流,而不是一种新的媒体.流媒体技 ...
- 机器学习Python实现AdaBoost
adaboost是boosting方法多个版本号中最流行的一个版本号,它是通过构建多个弱分类器.通过各个分类器的结果加权之后得到分类结果的.这里构建多个分类器的过程也是有讲究的,通过关注之前构建的分类 ...
- Toeplitz matrix 与 Circulant matrix
之所以专门定义两个新的概念,在于它们特殊的形式,带来的特别的形式. 1. Toeplitz matrix 对角为常数: n×n 的矩阵 A 是 Toepliz 矩阵当且仅当,对于 Ai,j 有: Ai ...
- IIS文件上传大小修改配置说明
原因:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大小时30M). 解决:IIS7更改asp.net文件上传大小限制 步骤如下: 1. 修改I ...
- ajax事件(五)
建立和探索一个简单示例之后,现在可以深入了解XMLHttpRequest对象支持的功能,以及如何在你的请求中使用它们了.起点就是第二级规范里定义的那些额外事件.之前已经使用一个:readystatec ...