Python序列(4):集合及序列解包

1. 集合的创建

集合无序可变序列,同一个集合内的每个元素都是唯一的,元素之间不允许重复。

# 创建一个集合赋值给变量
>>> Set = {1,2,3,4,5}
>>> Set
{1, 2, 3, 4, 5}

# 列表转换时自动去掉重复元素
>>> List = [1,1,1,1,0,0,2,2,2,2,4,4,4,4]
>>> Set = set(List)
>>> Set
{0, 1, 2, 4}

# 创建空集合
>>> Set = set()
>>> Set
set()
>>> type(Set)
<class 'set'>

集合中只能包含可哈希(不可变)的数据,而不能包括列表、字典、集合等可变类型的数据。Python 提供内置函数 hash() 来计算对象的哈希值,凡是无法计算哈希值的对象都不可作为集合的元素,也不能作为字典对象的“键”。

2. 集合操作与运算

2.1 集合元素增加与删除

# 添加元素,重复元素自动忽略
>>> Set = {1,2,3,4,5}
>>> Set.add(11)
>>> Set
{1, 2, 3, 4, 5, 11}

# 与其他集合合并,去重
>>> Set.update({99,66,1})
>>> Set
{1, 2, 3, 4, 5, 66, 99, 11}

2.2 集合运算

Python 集合支持交集、并集、差集等运算

# 并集
>>> A = {1,0}
>>> B = {1,0,2,4}
>>> A | B
{0, 1, 2, 4}

>>> A.union(B)
{0, 1, 2, 4}

# 交集
>>> A & B
{0, 1}

>>> A.intersection(B)
{0, 1}

# 差集
>>> B.difference(A)
{2, 4}

>>> B - A
{2, 4}

# 判断是否为子集
>>> B.issubset(A)
False
>>> A.issubset(B)
True

3. 序列解包

可以使用序列解包功能对多个变量同时进行赋值。

# 多个变量同时赋值
>>> x,y,z = 1,2,3
>>> x
1
>>> y
2
>>> z
3

# 使用range对象进行序列解包
>>> x,y,z = range(3)

>>> x,y,z = map(str,range(3))
>>> x
'0'
>>> y
'1'
>>> z
'2'

使用序列解包可以方便地同时遍历多个序列

>>> for i,j in zip(keys,values):
...     print(i,j)
A 1
B 2
C 3
D 4
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值