元组
Python内置的数据结构之一,是一个不可变序列
不可变序列与可变序列的区别:
不可变序列:字符串、元组
没有增、删、改的操作
可变序列:列表、字典
可以对序列执行增、删、改操作,对象地址不发生更改
元组的创建方式:
元组的创建方式:
直接用小括号
t=("python","hello",90) #定义元组,元组和列表的外貌区别在于括号
使用内置函数tuple(),一般用于类型转换,比如将列表转为元组
t1=tuple(("PYTHON","HELLO",99))
元组里只包含一个元素的需要使用逗号
t2=(10,)
为什么要将元组设计成不可变序列:
1.在多任务环境下,同时操作对象是不需要加锁
2.因此,在程序中尽量使用不可变序列
使用元组的注意事项:
元组中存储的是对象的引用
a.如果元组中的对象本身是不可变对象,,则不能在引用其他对象。
b.如果元组中的对象是可变对象(如列表),则可变对象的引用不允许改变(不可以改变列表类型,可以改变列表里的元素)
元组的遍历:
t5=("python","hello",90)
"""第一种获取元组元素的方式,使用索引"""
print(t[0])
print(t[1])
print(t[2])
print(t[3]) #报错,超出了元组的范围,在不知道元组里有多少个元素时,可以使用遍历元组的方法查看元组里有多少个元素
遍历元组:
"""遍历元组"""
for item in t5:
print(item)
主页有更多Python入门基础笔记
集合:
1.Python语言提供的内置数据结构
2.与列表、字典一样都属于可变类型序列
3.集合是没有value值的字典
例:
集合创建方式
ji={996,"python","hello"}
集合中的元素不可以重复,若元素重复则会被覆盖
jihe={1,6,1,2,3,4,5,6,6,1}
print(jihe) #结果为 {1, 2, 3, 4, 5, 6}
第二种创建方式,使用set(),使用这种函数一般都是将别的类型的元素,转为本类型的元素,比如将列表类型元素,转为集合类型元素
s=set(range(5))
print(s)
将列表元素转为集合元素
print(set([1,2,3,4,5]))
输出结果:{1, 2, 3, 4, 5}
将元组转为集合
print(set((1,2,4,4,5,65)))
输出结果:{65, 1, 2, 4, 5} 原因是因为集合是无序数列,而且会把重复的元素去除,只留下一个
集合是无序序列
print(set("python"))
输出结果:{'n', 'h', 't', 'y', 'p', 'o'}
定义空集合(不能直接使用{},否则会定义成字典)
s6=set() #只能这样定义空集合
"""判断集合内是否存在某元素时可以使用in not in"""
t1={10,20,30,40,50,}
print(10 in t1) #True
print(100 in t1) #False
print(10 not in t1) #False
集合的新增操作
add() 新增一个元素
update() 新增多个元素
t1.add(80)
print(t1)
输出结果:{80, 50, 20, 40, 10, 30}
t1.update([90,100,"py"]) #update()函数可以添加多个元素,或者是元组和列表
print(t1)
集合元素的删除操作
调用remove()方法,一次删除一个指定元素,如果指定元素不存在,抛出KeyError
调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛异常
调用pop()方法,一次只删除一个任意元素(pop()空格里面不能添加参数,因为是随机删除一个元素,不能指定)
调用clear()方法清空集合
调用函数的方法:
需要用到该函数的元素名 . 函数名() 括号里一般可以填写参数
例:
t1.remove(20) #名为t1的集合,调用remove()函数,删除集合内指定元素20
print(t1)
集合间的关系
一、两个集合是否相等
可以使用运算符==或 !=进行判断
二、一个集合是否是另一集合的子集
可以调用方法issubset进行判断
B是A的子集
三、一个集合是否是另一个集合的超集
可以调用方法issuperset进行判断
A是B的超集
四、两个集合是否没有交集
可以调用方法isdisjoint进行判断
集合的数学操作:
交集
并集
差集
对称差集
交集 使用.intersection() 或 &
s1={10,20,30,40}
s2={20,30,40,50,60}
print(s1.intersection(s2))
print(s1 & s2)
并集
print(s1.union(s2))
print(s1 | s2)
差集
print(s1.difference(s2)) #意思是相减操作,s1集合减去s2集合还剩下什么元素,只会减去相同元素,剩下的不同的元素
print(s1-s2)
对称差集
print(s1.symmetric_difference(s2)) #意思是将两个集合里相同的元素去除,留下两个集合里不同的元素
"""集合生成式"""
s={i*i for i in range(10)}
print(s)