Python编程Day6——元组类型、字典类型、集合
一、元组类型(tuple)
1、用途:记录多个值,当多个值没有改变的需求此时元组更为合适
2、定义:在()内用逗号分隔开多个任意类型的值(参数为for可以循环的对象)
3、常用操作:
索引(正取向+反取向)且只能取值不能改变
t=('egon',123,['a','b'])
print(id(t[0]))
print(id(t[1]))
print(id(t[2]))
print(id(t[-1]))
切片(顾头不顾尾,步长)
print(id(t))
nt=t[::-1]
print(nt,id(nt))
长度len
print(len(t))
成员运算in not in
循环
4、内置方法 # 该数据集合可以存放相同数据
print(t.count(2))
print(t.index(2,2,3))
总结:元组属于有序、不可变类型
二、字典类型(dic)
1、用途:存放多个值,可以通过key取值
2、定义:key具有唯一性(重复会覆盖掉旧值),value可以重复
dict的key:可以为所有不可变类型:int float tuple str bool None
dict的value:可以为所有数据类型
3、常用操作:无索引、切片,用key来取值
增:key不存在
dic={}
dic['name']='Mac'
print(dic)
删
del dic['name']
print(dic)
改:key已存在
dic['name']='Big Mac'
print(dic)
查
print(dic['name'])
4、内置方法
A、get取值*******
dic={'a':10,'b':20}
print(dic['c']) # KeyError报错
res=dic.get('c') # 拥有默认值,None,可以避免错误
print(res)
res=dic.get('d','key不存在')# 可以自定义默认值****
print(res)
增:添加的参数字典,与dic可以重复,就是更新值,新key就是新增
dic.update({'a':100,'c':300})
print(dic)
删:根据key删除指定对象,并返回删除对象的value
res=dic.pop('c')
print(res)
B、复制
newDic=dic.copy()
print(newDic) d1={'list':[1,2]}
d2=d1.copy()
print(id(d1),id(d1['list']))
print(id(d2),id(d2['list']))
d1['list'].append('abc')
print(d2)
C、随机删除,返回值是(key,value形式)
print(dic)
print(dic.popitem())
print(dic.popitem())
print(dic)
D、独自设置默认值
d11={'a':10,'teas':['Owe原teas的基础上添加老师,如果没有,新建一个空teas']}
d11={'a':10}
# 添加老师 如果有teas,在原teas基础上添加老师,如果没有,新建一个空teas
if 'teas'not in d11: #成员运算
d11['teas']=[]
d11['teas'].append('egon')
d11['teas'].append('liuxx')
print(d11)
E、 定一个空字典
第一个参数:keys:list、tuple、str,
第二个参数是统一的默认value(如没定义value默认为None)
d10={}.fromkeys(['a','b','c'])
print(d10) #{'a','b','c':}
总结:字典属于无序、可变类型
三、集合(set)
1、用途:列数据集合:str、list、tuple、set 双列:dict
2、定义:无序存储:无key无index,无法取值
可变数据类型,内部可以存放任意类型数据,但数据具有唯一性就是去重*****
3、常用操作
{}代表空字典,用set()来创建空集合
s1={}
print(s1,type(s1))
s2=set('abc')
print(s2,type(s2))
4、内置方法:与使用—集合间的运算(&|^ - <>==)
p_set={'a','b','c','egon'}
l_set={'x','y','z','egon'}
res=p_set & l_set
print(res)
res=p_set.intersection(l_set)
print(res) # 输出{'egon'}
并集 |
res=p_set| l_set
print(res)
res=p_set.union(l_set)
print(res) # 输出{'z','c','y','x','b','a','egon'}
差集-
res=p_set -l_set
print(res) # 输出三('a','b','c')
res=l_set.difference(p_set)
print(res) # 输出('x','y'.,'z')
对称差集 ^
res=p_set^l_set
print(res) res=p_set.symmetric_difference(l_set)
print(res) # 输出为{'y','a','b','x','z','c'}
print(p_set)
print(l_set)
p_set.difference_update(l_set) # 将运算结果赋值给调用者
p_set=p_set-l_set
print(p_set) # 输出{'c','a','b'} print(l_set) # 输出{'egon','z','y','x'}
5、添加删除操作
s=set()
s.add('abc')
s.add('xyz')
print(s) res=s.pop() # 随机删除一个ele元素
print(res)
if 'xyz'in s:
s.remove('xyz') # 有ele就删除,无ele出异常
6、案例与应用场景
# 1、多少人参加了课程 :['owen','egon','liuxx']
# 2a 、都选了哪些课程?:['python','linux','java']
# 利用逻辑代码去重
names = []
for name, _ in class_map:
# 判断列表中是否已存在,不存在才添加
if name not in names:
names.append(name)
print(names) # 利用set去重
classes = set()
for _, cless in class_map:
classes.add(cless)
classes = list(classes)
print(classes)
#
7、了解 :父子set
sup_set={1,2,3,4,5}
sub_set={1,2,3}
temp_set={3,2,1}
flag_set={7,8,9} print(sup_set>sub_set) # 输出为Ture
print(sup_set<sub_set) # 输出为False
print(temp_set==sub_set) # 输出为Ture
8、两个set是否没有交集
res=flag_set.isdisjoint(temp_set)
print(res)
res=temp_set.isdisjoint(sup_set)
print(res)
Python编程Day6——元组类型、字典类型、集合的更多相关文章
- python学习Day6 元组、字典、集合set三类数据用法、深浅拷贝
一.深浅拷贝 1. 值拷贝 ls1 = ls2 不开辟空间,指针跟着走.(直接将ls1中存放的地址拿过来,内存中不会开辟新的空间,所以你怎么变,我也跟着变.)(ls1内部的所有类型的值发生改变,l ...
- python数据类型之元组、字典、集合
python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...
- python列表,元组,字典,集合的比较总结
这四个都是python中的序列,用于存放数据,他们区别总结如下: 列表list 元组tuple 字典dictionary 集合set 是否可变 可变 不可变 可变 可变 是否有序 有序 有序 无序 ...
- Python 列表、元组、字典及集合操作详解
一.列表 列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型 列表是一种有序的集合,可以随时添加和删除其中的元素 列表的索引从0开始 1.创建列表 ...
- Python列表、元组、字典、集合的内置使用方法
列表: 是一种可以存储多个值得数据容器 内容是有序的 可以存储任何数据类型 可以存储重复的元素 是可变类型(当内容发生变化时id不变) 元组: 也是一种可以存储多个值得数据容器 元组中的元素不可以被修 ...
- python列表、元组、字典、集合的简单操作
一.列表.元组 1.常用操作函数 #Author:CGQ import copy #列表 ''' names=["ZhangYang","XiaoHei",&q ...
- python第六天(元组、字典、集合)
一.元组(tuple) 作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要用来读 定义:与列表类型相比,只不过把[ ]换成() age=(11,22,33,44,55)prin ...
- DAY6 元组、字典与集合
一.元组 定义:t1 = (1, 2) # t1 = tuple((1,2)) 特点:有序存储.可存放多个数据.不可变(内部可以包含可变对象,可变对象已久可变) 应用场景:将不允许操作的列表可以转化为 ...
- Python列表、元组、字典和集合的区别
数据结构 是否可变 是否重复 是否有序 定义符号 列表(list) 可变 可重复 有序 [] 元组(tuple) 不可变 可重复 有序 () 字典(dictionary) 可变 可重复 无序 {key ...
随机推荐
- hibernate中怎样配置两个联合属性为唯一约束(非联合主键)
Annotation中配置: @Table元素包括了一个schema和一个catalog属性,如果需要可以指定相应的值. 结合使用@UniqueConstraint注解可以定义表的唯一约束(uniqu ...
- AX_ClassTemplate
static void main(Args args) { THK_InterfaceDataExtract THK_InterfaceDataExtract; FormRun formRun = a ...
- PNP的学习-EPNP
EPNP主要是利用已知的3d点,通过PCA选择4个控制点,建立新的局部坐标系,从而将3d坐标用新的控制点表示出来. 然后,利用相机投影模型和2d点,转换到相机坐标系中,再在相机坐标系中建立和世界坐标系 ...
- CCS中cmd文件的编写
http://blog.sina.com.cn/s/blog_abe5740601015b3q.html CMD的专业名称叫链接器配置文件,是存放链接器的配置信息的,我们简称为命令文件,其中比较关键的 ...
- 微信小程序开发之搞懂flex布局5——cross axis
Cross Axis——交叉轴,与Main Axis(主轴)垂直交叉. main axis is row or row-reverse the cross axis runs down the col ...
- H5canvas画类似心电图
HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像,我们可以使用canvas来绘制类似心电图的东西. 效果图如下: <!DOCTYPE html> <ht ...
- python语法之函数1
函数 计算机中的函数和数学中的函数不是一回事,而是一个subroutine .子程序.procedures.过程. 作用: 1.减少重复代码: 2.方便修改,更易扩展: 3.保持代码的一致性. 最简单 ...
- CentOS下安装Git
在终端输入命令:yum install git,此时会进行提示安装,输入y, 在这种安装方式下,速度很快(windows系统下下载客户端速度超慢),当出现安装完毕时,就可以了. 安装完毕后输入git ...
- WPF中的数据绑定
WPF中的数据绑定 基础概念 System.Windows.Data.Binding,他会把两个对象(UI对象与UI对象之间,UI对象与.NET数据对象之间)按照指定的方式粘合在一起,并在他们之间建立 ...
- ORACLE 快速刷新物化视图的方法(11g)
1.on demand:用户需要刷新的时候刷新,这里就要求用户自己动手去刷新数据了(也可以使用job定时刷新) refresh [fast|complete|force] 视图刷新的方式: compl ...