Python学习自用笔记(pycharm)cha8.元组和集合

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值