python学习日记13——元组与集合

 1.什么是元组

  • 内置数据结构之一,不可变序列
  • 不可变序列:字符串和元组,特点:没有增删改,对象地址改变
  • 可变序列:列表和字典,特点:有增删改,对象地址不变

2.元组创建

# 法1
t = ('python', 'world', 98)    # 括号可省略
print(t)
print(type(t))

t1 = ('python',)                # 如果只有1个值,则必须加上小括号和逗号
# 法2
t2 = tuple(('python', 'world', 98))
print(t2)

# 空元组的创建
t3 = ()
t4 = tuple()

3.为什么是不可变序列

在多任务中,操作对象时不改变数据

注意:

元组存储的是对象的引用

如果元组中对象本身是不可变对象(如字符串和int),则不能引用其他对象(不能修改)

如果是可变对象(如列表),引用不能变,但引用的数据可以变(列表对象里的数据)

4.元组的遍历

t = ('python', 'world', 98)

# 第一种
print(t[0])
print(t[1])
print(t[2])

# 遍历
for i in t:
    print(i)

5.什么是集合

集合是没有value的字典

6.集合的创建

# 第一种
s = {2, 3, 4, 5, 5, 6, 7, 7}  # 集合和字典的键类似,不允许重复
print(s)                      # {2, 3, 4, 5, 6, 7}

# 第二种
s1 = set(range(6))
s2 = set([0, 1, 2])
s3 = set('python')
s4 = set({1,2,3,4})
print(s1)
print(s2)
print(s3)
print(s4)

# 创建空集合
s5 = set()
# s5 = {}定义的是空字典

7.集合的相关操作

# 判断是否存在
s = {10, 20, 30, 405, 60}
print(10 in s)
print(10 not in s)
print(100 in s)

# 增加
# add()加一个元素
s.add(80)
print(s)
# update()至少加一个元素
s.update({200, 300, 400})
s.update([100, 99, 8])
s.update((78, 64, 2))
print(s)

# 删除
# remove()删除一个,不存在报错
s.remove(100)
print(s)
# discard()删除一个,不存在不操作,不报错
s.discard(500)
print(s)
# pop()随机删除一个,应该是第一个
s.pop()
s.pop()
print(s)

# clear()清空集合
s.clear()
print(s)

8.集合的关系

s = {10, 20, 30, 40}
s1 = {20, 30, 40, 10}
# 是否相等,元素相等就相等,与顺序无关
print(s == s1)         # True
print(s != s1)         # False

# 子集
s2 = {10, 20, 30, 50}
s3 = {10, 20, 30}
s4 = {10, 60}
print(s3.issubset(s2))  # True
print(s4.issubset(s2))  # False

# 超集(包含)
print(s2.issuperset(s3))  # True
print(s2.issuperset(s4))  # False

# 交集 disjoint没有交集
print(s2.isdisjoint(s3))  # False

9.集合的数学操作

s = {10, 20, 30, 40}
s1 = {20, 30, 40, 50}
# 交集
print(s.intersection(s1))
print(s & s1)
# 并集
print(s.union(s1))
print(s | s1)
# 差集
print(s.difference(s1))
print(s - s1)
# 对称差集
print(s.symmetric_difference(s1))
print(s ^ s1)

10.集合生成式

s = {i for i in range(10)}
print(s)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值