2023.04.22
笔记代码部分
# Auther : 金世龙
# Date : 2023/4/20 16:00
# File : 4.20_cha8.py
'''--------元组和集合----------'''
'''不可变序列:字符串、元组'''
'''可变序列:列表、字典'''
'''元组的创建方式'''
'''第一种,使用()'''
t = ('python_note', 'world', 98)
print(t)
print(type(t))
t2 = 'python_note', 'world', 98
print(t2)
print(type(t2))
# 如果只有一个元素,逗号必须加上!否则编译器会是别成字符串
t3 = ('python_note',)
print(t3)
print(type(t3))
'''第二种创建方式,使用内置函数tuple()'''
t1 = tuple(('python_note', 'world', 98))
print(t1)
print(type(t1))
'''空元组的创建方式'''
t4 = ()
t5 = tuple()
# 复习空列表和空字典的创建方式
lst = []
lst1 = list()
d = {}
d2 = dict()
'''元组是不可变序列!!!'''
t = (10, [20, 30], 9)
# t[1] = 100 #TypeError: 'tuple' object does not support item assignment
t[1].append(100) # 不可以直接修改元组的元素的引用,但是可以修改元组中可变对象的数据
print(t)
'''元组的遍历'''
t = ('python_note', 'world', 98)
for item in t:
print(item)
'''集合(没有value的字典)'''
'''第一种创建方式'''
s = {2, 3, 4, 5, 6, 6, 6, 6, 6, 7, 8, 9, 9, 9, 9, 9, 9}
print(s) # 集合中的元素不允许重复
'''使用内置函数set()'''
s1 = set(range(6))
print(s1)
s2 = set([1, 1, 1, 1, 2, 3]) # 将列表转换成集合
print(s2, type(s2))
s3 = set((1, 2, 4, 4, 5, 65)) # 集合中的元素是无序的,而且不允许重复元素
print(s3, type(s3))
s4 = set('python_note')
print(s4)
s5 = set({12, 4, 34, 55, 66, 44, 4})
print(s5, type(s5))
# 定义一个空集合
s6 = {}
print(s6, type(s6)) # 默认是字典类型
s7 = set()
print(s7, type(s7))
'''集合元素的判断操作'''
s = {10, 20, 30, 40}
print(10 in s)
print(1 not in s)
'''集合元素的新增操作,一次想添加一个就用add(),一次想添加多个就用update()'''
s.add(90)
print(s)
s.update({200, 400, 300}) # 把一个集合添加到另一个集合当中(也可以放元组,列表)
print(s)
'''集合的删除操作'''
'''remove()一次删除指定元素,指定元素不存在就报错'''
s.remove(10) # remove()函数要是有这个元素就删除,要是没有就报错
print(s)
'''discard()一次删除指定元素,指定元素不存在不抛出异常'''
s.discard(500) # discard()函数 要是有这个元素就删除,没有的话也不报错
print(s)
'''pop()一次删除一个任意元素'''
s.pop()
print(s)
'''clear()清空集合'''
s.clear()
print(s)
'''集合之间的关系'''
'''两个集合是否相等:元素相同就相等,集合无序'''
'''一个集合是否是另一个集合的子集:issubset()'''
s1 = {1, 2, 3}
s2 = {1}
s3 = {1, 4, 5}
print(s1.issubset(s2))
print(s2.issubset(s1))
'''一个集合是否是一个集合的超集:issuperset()'''
print(s1.issuperset(s2))
'''两个集合是否没有交集:isdisjoint()'''
print(s1.isdisjoint(s3)) # 有交集返回false
'''集合的数学操作'''
# (1) 交集:intersection();A & B
s1 = {10, 20, 30, 40}
s2 = {20, 30, 40, 50, 60}
print(s1.intersection(s2))
print(s1 & s2) # 注意区分C语言中的 并且 的意思 在python中是求交集的意思
# (2) 并集: union(); A | B
print(s1.union(s2))
print(s1 | s2) # 注意区分C语言中的 或 的意思 在python中是求并集的意思
# (3) 差集: difference()
print(s1.difference(s2)) # s1集合减去s2集合(画图)
print(s2.difference(s1)) # s2集合减去s1集合(画图)
# (4) 对称差集: symmetric_difference()
print(s1.symmetric_difference(s2)) # s1和s2的并集减去他们的交集
'''集合生成式'''
s = {i*i for i in range(6)}
print(s)
运行结果
C:\Anaconda\envs\pytorch_py37\python.exe D:\python_note\4.20_cha8.py
('python_note', 'world', 98)
<class 'tuple'>
('python_note', 'world', 98)
<class 'tuple'>
('python_note',)
<class 'tuple'>
('python_note', 'world', 98)
<class 'tuple'>
(10, [20, 30, 100], 9)
python_note
world
98
{2, 3, 4, 5, 6, 7, 8, 9}
{0, 1, 2, 3, 4, 5}
{1, 2, 3} <class 'set'>
{65, 1, 2, 4, 5} <class 'set'>
{'t', 'o', 'y', 'p', 'e', 'h', 'n', '_'}
{34, 66, 4, 55, 12, 44} <class 'set'>
{} <class 'dict'>
set() <class 'set'>
True
True
{40, 10, 20, 90, 30}
{40, 200, 10, 300, 400, 20, 90, 30}
{40, 200, 300, 400, 20, 90, 30}
{40, 200, 300, 400, 20, 90, 30}
{200, 300, 400, 20, 90, 30}
set()
False
True
True
False
{40, 20, 30}
{40, 20, 30}
{40, 10, 50, 20, 60, 30}
{40, 10, 50, 20, 60, 30}
{10}
{50, 60}
{50, 10, 60}
{0, 1, 4, 9, 16, 25}
进程已结束,退出代码0