6.Python的元组和集合

一、元组

1.1元组的定义

元组(tuple)表示任意元素的序列,元素可以是任意的数据类型,序列中的元素,不能增、删、改

元组就是不可变列表

通过hash函数可验证是否可变

l='haha'
hash(l)  #无报错,可hash 不可变数据类型
a=[1,23,3]
print(hash(a))  #报错,不可hash 可变数据类型

新建

直接小括号创建,小括号可省略

t=('hello','python',98)
print(type(t))
t1='hello','python',98  #省略小括号创建
print(type(t1))

使用内置函数tuple()创建

t=tuple(('hello','python',98))
print(type(t))

只包含一个元组的元素需要使用逗号和小括号进行创建

t=()  #创建空列表
print(type(t))
t='test',  #若元组中只有一个元素,逗号不可省略
print(type(t))

1.2元组的切片和索引

原理与列表原理一致

二、集合

2.1集合的定义

python中的集合与数学概念中的集合一致,用来表示无序不重复元素的集合,若有重复元素,则系统自动删除

集合中的元素只能是不可变数据类型

a={[1,2,3,4]} #报错

a={1,'a', (['a'],1)} #报错,元素中也不运行有可变数据类型

2.2新建

使用大号{}包裹,元素之间用逗号分隔

s={21,'we',35,'e',21}  #集合元素不允许重新,程序自动删除重复元素 print(s,type(s))

通过内置函数set()

s1=set([1,2,4,5]) 
print(s1,type(s1))   #{1,2,4,5}
s2=set(range(6))
print(s2,type(s2))
s3=set((2,3,4,56,7))
print(s3,type(s3))
s4=set({2,3,45,6,7})
print(s4,type(s4))
s5=set('python')
print(s5,type(s5))

定义空集合

s=set()
print(s,type(s))

2.3元素的常用操作

增加

add() 一次添加一个元素

s=({1,3,2,34,5})
s.add(4)
print(s)

update()至少添加一个元素

s=({1,3,2,34,5})
s.update([1,2,345,676])
print(s)
s.update({34,456,678})
print(s)
s.update((23,4,35,67668,98))
print(s)

删除

remove()删除一个指定的元素

s=({1,3,2,34,5})
s.remove(34)
print(s)
#若元素不存在则报错

discard()删除一个指定的元素

s=({1,3,2,34,5})
s.discard(34)
s.discard(6)  #元素不存在不会报错
print(s)

pop()删除任意一个元素

s=({1,3,2,34,5})
s.pop() #随机删除一个元素,不可指定删除元素
print(s)

clear()清空集合

s=({1,3,2,34,5})
s.clear()  #清空集合
print(s)

2.4集合的运算

交集:&

s={10,20}
s1={10,20,30}
print(s.intersection(s1))
print(s1 & s2)   # &与intersection相等,计算集合交集

并集:|

s1={1,10,20,30}
s2={10,2}
print(s1.union(s2))
print(s1 | s2)   # |与union相等,计算集合并集

差集:-

s1={1,10,20,30}
s2={10,2}
print(s1.difference(s2))
print(s1-s2)   # -与difference相等,计算集合差集

对称差集:^

s1={1,10,20,30}
s2={10,2}
print(s1.symmetric_difference(s2))
print(s1 ^ s2)   # ^ 与symmetric_difference相等,计算集合对称差集

2.5集合去重

集合天生去去重,可以利用它来去除序列中的重复元素(序列中必须是不可变元素)

ls=[1,2,2,2,3,4,5,5]
s=set(ls)
print(list(s))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值