DAY06、元组、字典、集合
一、元组
1、定义:参数为for可以循环的对象
t1 = (1, 2)
t2 = tuple((1, 2))
t3 = (1, ) #定义一个只有一个值的元组
2、常用操作:
2.1、索引
元组是有序存储,所以可以以索引取值
t(1,2,3,4,5)
print(t[1])
print(t[-2])
2.2、长度(item元素个数)
print(len(t))
2.3、切片
t=(1,2,3,2,3,2)
nt = t[:-1:]
print(nt) #(1,2,3,2,3)
3、元组的内置方法:
print(t.count(2)) #统计2的个数,该数据集合可以存放相同数据
t=(1,2,3,2,3,2)
print(t.index(2,2,3)) #报错,顾头不顾尾,所以找不到2
元组小结:有序存储 ,可存放多个数据 , 不可变(内部可以包含可变对象,可变对象可以改变)
它可以将不允许操作的列表可以转化为元组,将允许操作的元组转化为列表
二、字典
1、定义:在大括号内用逗号分隔开,以一个key对应一个value存储
dic={'a':10,'b':20}
2、常用操作:
2.1、增加:key不存在
dic['name'] = 'Mac'
2.1、该:key存在
dic['name'] = 'Big Mac' #将原先的Mac改为Big Mac
2.2、查value:
print(dic['name']) #查找'name'对应的value值
2.3、删除:
del dic['name']
3、内置方法:
3.1、 get取值(重点)*****
例:dic = {'a':10,'b':20}
print(dic['c']) #KeyError 即c不存在dic中就会报错
res = dic.get('c') #拥有默认值None,可以避免错误,返回None
res = dic.get('d',key不存在) #返回key不存在
3.2、增加:添加的参数字典,与dic可以重复,如果重复就是更新,如果不重复则新增
print(dic.update({'a':100,'c':300})) #{'a':100,'b':20,'c':300},即a的值更新了,新加了c
3.3、删除:
res = dic.pop('c') #根据key删除指定对象,并返回删除对象的value
print(red) #300
3.4、复制:(浅拷贝、深拷贝)
d1 = {'list':[1,2]}
d2 = d1.copy() #d1,d2的地址不一样,但是内部成员的地址不变,即只做第一层copy(浅copy)
d1['list'].append('abc')
print(d2) # {'list':[1,2,'abc']}
3.5、随机删除:
print(dic.popitem()) #随机删除字典里的一个值,返回的是被删除的(key:value)
3.6、定义空字典:第一个参数key可以是list,tuple,str,第二个参数是统一的默认value
d1 = {}.fromkeys(['a','b','c'],'')
print(d1) #{'a':'','b':'','c':''}
3.7、setdefault的用法
d.setdefault('teas',[]) #在d中,如果有teas这个key,setdefault相当于什么都没做
#如果没有,就将第二个参数(默认值)传给teas存放到d中
字典小结:字典中的key可以为所有不可变类型:int float tuple str bool None,但是一般采用字符串
value可以是任意类型(注:key具有唯一性,即重复会覆盖旧值,而value可以重复)
三、集合
1、定义:s = set()
2、常用操作与内置方法
2.1、交集&
p_set = {'a','b','c','egon'}
l_set = {'x','y','z','egon'}
res = p_set & l_set
或 res = p_set.intersection(l_set)
print(res) #{'egon'}
2.2、并集|
res = p_set | l_set
或res = p_set.union(l_set)
print(res) #{'x','y','z','a',b','c','egon'}
2.3、差集
res = p_set - l_set
print(res) #{'a','b','c'}
或res = p_set.difference(l_set)
print(l_set - p_set) #{'x','y','z'}
2.4、对称差集^
res = p_set ^ l_set
或res = p_set.symmetric_difference(l_set)
print(res) #{'a','x','b','c','y','z'}
2.5、增加
s = set()
s.add('abc')
s.add('xyz')
print(s) #{'abc','xyz'}
2.6、删除
res = s.pop ()
print(res) #随机删除一个元素
if 'xyz' in s:
s.remove('xyz') #有就删除,没有就报错
3、了解
1、父子set
set1 = {1,2,3,4,5,6}
set2 = {1,2,3}
set3 = {7,8,9}
print(set1 > set2) #True
print(set2 == set3) #False
2、两个set是否没有交集
res = set3.isdisjoint(set2)
print(res) #没有交集,True
res = set2.isdisjoint(set1)
print(res) #有交集,False
集合小结:集合是无序存储,没有key,没有index,无法取值;
可变数据类型,内部可以存放任意类型数据,但数据具有唯一性
DAY06、元组、字典、集合的更多相关文章
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
- **python中列表 元组 字典 集合
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...
- python_列表——元组——字典——集合
列表——元组——字典——集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...
- 元组/字典/集合内置方法+简单哈希表(day07整理)
目录 二十三.元组内置方法 二十四.字典数据类型 二十五 集合内置方法 二十五.数据类型总结 二十六.深浅拷贝 补充:散列表(哈希表) 二十三.元组内置方法 什么是元组:只可取,不可更改的列表 作用: ...
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- day_6深浅拷贝,元组字典集合类型定义和各种操作方法
首先我们来讲一下深浅拷贝 1:值拷贝,假设一个列表等于L1 再定义一个L2=L1 这样就是值拷贝 L2只是存的L1存列表的地址,所以当L1发生改变,L2也随之改变 2:浅拷贝,L2=L1.copy( ...
- Python 基础-python-列表-元组-字典-集合
列表格式:name = []name = [name1, name2, name3, name4, name5] #针对列表的操作 name.index("name1")#查询指定 ...
- Python数据类型-布尔/数字/字符串/列表/元组/字典/集合
代码 bol = True # 布尔 num = 100000000; # 数字 str = "fangbei"; # 字符串 str_cn = u"你好,方倍" ...
- python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)
列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...
- python 列表 元组 字典 集合
列表 lst = [i for i in range(10)] 切片 # 把下标小于2的显示出来 print(lst[:2]) # 把10个数有大到小输出 print(lst[::-1]) # 把下标 ...
随机推荐
- angularjs处理/n转<br/>时候 <br/>不会解析的问题
$scope.name=$sce.trustAsHtml($scope.name); <p ng-bind-html="name"></p>
- DNS原理-HTTP原理-TCP原理
第一章:企业DNS原理 相信大家都知道windows和linux的hosts文件是:IP地址和域名的对应关系,我们一般访问网站的步骤: 打开网页-----输入网址-------查看本地的DNS库是否存 ...
- 洛谷题解 P1138 【第k小整数】
蒟蒻发题解了 说明:此题我用的方法为桶排(我翻了翻有人用了桶排只不过很难看出来,可能有些重复的,这个题只是作为一个专门的桶排来讲解吧) (不会算抄袭吧 ‘QWaWQ’) 简单来说(会的人跳过就行): ...
- pyspider环境部署1--python3安装
爬虫是一个既好玩又好用的东西,接触它有1年多了,了解一些,算不上精通.爬过新闻.微信公众号,主要用pyspider,scrapy也了解过,python2和3都尝试过.公司业务规模不大,基于 pytho ...
- OpenCV3编程入门笔记(一)
---恢复内容开始--- 图像处理技术一般包括图像压缩,增强和复原,匹配.描述和识别3个部分.图像处理和计算机视觉的区别在于:图像处理侧重于“处理”图像——如增强.还原.去噪.分割等:而计算机视觉重点 ...
- github 遇到Permanently added the RSA host key for IP address '192.30.252.128' to the list of known hosts问题解决
刚开始使用github的时候不是很了解,新手一般的都会遇到这个问题Permanently added the RSA host key for IP address '192.30.252.128' ...
- Python通过pip方式安装第三方模块的两种方式
一:环境 python3.6 windows 10 二:常用命令 如果直接执行pip命令报错,说明pip不在path环境变量中 解决方法: python -m pip list 以下默认可直接使用pi ...
- Fiddler抓包和修改WebSocket数据,支持wss
记录一下用Fiddler对WebSocket收发的数据进行抓包分析和篡改数据,只找到这么一个方法,能用就行吧. 时间:2019-3-29 环境: win7 + Fiddler 5.0 Fiddler抓 ...
- Spring如何加载log4j配置文件
今天有朋友在群里问了这个问题,于是写了这篇文章进行整理. 问题如下: 在项目中添加了log4j.properties配置文件,并没有在Spring配置文件中配置,也没有在web.xml中配置,但是代码 ...
- PYTHON访问数据库
PYTHON DB API(规范)框架 可以一次编写同时访问MySql\ Oracle \SQLServer...不同的数据库服务器:统一接口程序的混乱. 1.连接访问:connection(高速路) ...