Python中元组和集合以及总结

Python之元组和集合以及总结:

1.元组:

'''空列表的创建方式'''
lst=[]
lst1=list()
'''空字典的创建方式'''
d={}
d1=dict()
'''空元组的创建方式'''
t4=()
t5=tuple()

元组是不可变序列:
元组中存储的是对象的引用:
1.如果元组中的对象本身是不可变变对象,则不能引用其他对象
2如果元组中的对象是可变对象,则可变对象地址不可变,数据可变

在这里插入图片描述

t=[10,[20,30],80]
print(t,type(t[0]),type(t[1]),type(t[2]))
#[10, [20, 30], 80] <class 'int'> <class 'list'> <class 'int'>
print(id(t[0]),id(t[1]),id(t[2]),)
#140716748612272 2379850797512 140716748614512
#t[1]=100,元组是不允许修改元素的
t[1].append(100)#向列表中添加元素
print(id(t[1]))#2329809932744,id没有发生改变

元组的遍历:

t=('Python','world',90)
'''第一种方式使用索引'''
print(t[0])
'''第二种方式遍历元组'''
for i in t:
    print(i)

2.集合:

Python语言提供的内置数据结构
与列表、字典一样都属于可变类型
集合是没有value的字典

1.集合的创建方式:

'''第一种创建方式'''
s={2,3,4,5,6,7,7}
print(s)#{2, 3, 4, 5, 6, 7}
#集合中的元素不允许重复,会把重复的去掉
'''第二种创建方式,使用内置函数set()'''
s1=set(range(6))
print(s1,type(s1))#{0, 1, 2, 3, 4, 5} <class 'set'>
s2=set([1,2,3,4,4,5])#列表转换成集合
print(s2,type(s2))#{1, 2, 3, 4, 5} <class 'set'>
s3=set((1,2,3,44,5,5))#元组转换成集合
print(s3,type(s3))#{1, 2, 3, 5, 44} <class 'set'>,集合中的元素是无序的
s4=set('Python')#字符串转换成集合
print(s4,type(s4))#{'y', 'o', 'P', 't', 'n', 'h'} <class 'set'>
s5=set({12,6,78,97,56})#集合
print(s5,type(s5))#{97, 6, 56, 12, 78} <class 'set'>

#定义一个空集合
s6={}#dict字典
s7=set()
print(type(s7))#<class 'set'>

2.集合的相关操作:

  1. 集合的判断操作:
s={10,20,330,405,60}
print(10 in s)#True
  1. 集合元素的新增操作:
s={20,30,49,34,98}
s.add(80)#一次添加一个
print(s)#{34, 98, 80, 49, 20, 30}
s.update({200,400,300})#一个集合内加入另一个集合
print(s)#{34, 98, 200, 300, 80, 49, 400, 20, 30}
s.update([100,90,89])#放入列表
s.update((67,3,5))#放入元组
print(s)#{34, 98, 100, 67, 3, 5, 200, 300, 80, 49, 400, 20, 89, 90, 30}
  1. 集合元素的删除操作:
'''在用remove删除的时候,必须要求元素存在,否则会抛出异常KeyError'''
s.remove(100)
print(s)#{34, 98, 67, 3, 5, 200, 300, 80, 49, 400, 20, 89, 90, 30}
'''在用discard删除的时候,如果元素不存在,不报错'''
s.discard(1000)
'''使用pop()方法,一次删除一个任意元素,随意删的'''
s.pop()
print(s)#{98, 67, 3, 5, 200, 300, 80, 49, 400, 20, 89, 90, 30}
'''使用clear()方法,清空集合'''
s.clear()
print(s)#set()

3.集合间的关系:
4. 两个集合是否相等,元素相同即相同:

s={10,20,30,40}
s1={20,30,40,10}
print(s==s1)#True
  1. 一个集合是不是另一个集合的子集
s={10,20,30,40}
s1={20,30,40,10,50}
print(s.issubset(s1))#True
  1. 一个集合是否是另一个集合的超集
s={10,20,30,40}
s1={20,30,40,10,50}
print(s1.issuperset(s))#True
  1. 两个集合是否没有交集,没有交集为True,有交集为True:
s={10,20,30,40}
s1={20,30,40,10,50}
print(s1.isdisjoint(s))#True

4.集合的数学操作:
在这里插入图片描述

  1. 交集操作:
s1={10,20,30,40}
s2={20,30,40,50,60}
print(s1.intersection(s2))#{40, 20, 30}
print(s1 & s2)#{40, 20, 30}
  1. 并集操作:
s1={10,20,30,40}
s2={20,30,40,50,60}
print(s1.union(s2))#{40, 10, 50, 20, 60, 30}
print(s1 | s2)#{40, 10, 50, 20, 60, 30}
  1. 差集操作:
s1={10,20,30,40}
s2={20,30,40,50,60}
print(s1.difference(s2))#{10}
  1. 对称差集:
s1={10,20,30,40}
s2={20,30,40,50,60}
print(s1.symmetric_difference(s2))#{50, 10, 60}
print(s1^s2)#{50, 10, 60}

5.集合生成式:

#列表生成式
lst=[i*i for i in range(6)]
print(lst)#[0, 1, 4, 9, 16, 25]
#集合生成式
lst1={i*i for i in range(6)}
print(lst1)#{0, 1, 4, 9, 16, 25}

6.四种数据结构的总结:
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值