鱼C论坛

 找回密码
 立即注册
查看: 2013|回复: 1

[学习笔记] 集合-下

[复制链接]
发表于 2023-3-10 10:06:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> # Python 将集合细分为可变和不可变两种对象,前者是 set(),后者是 frozenset():
>>> t = frozenset("FishC")
>>> t
frozenset({'h', 'C', 's', 'i', 'F'})
>>> a = set("fishC")
>>> t
frozenset({'h', 'C', 's', 'i', 'F'})
>>> a
{'h', 'C', 's', 'f', 'i'}
>>> # v

>>> # 冻结的集合(frozenset())是不支持修改的。
>>> # 仅适用于 set() 对象的方法
>>> # update(*others) 方法使用 others 容器中的元素来更新集合:
>>> s = set("fishC")
>>> s
{'h', 'C', 's', 'f', 'i'}
>>> s.update([1,1], "23")
>>> s
{1, 'h', '3', 'C', 's', 'f', 'i', '2'}

>>> # intersection_update(*others)、difference_update(*others) 和 symmetric_difference_update(other) 分别是使用前面讲过的交集、差集和对称差集的方式来更新集合:
>>> s.intersection_update("FishC")
>>> s
{'C', 's', 'i', 'h'}
>>> s.difference_update("Php", "Python")
>>> s
{'C', 's', 'i'}
>>> s.symmetric_difference_update("Python")
>>> s
{'o', 'h', 'y', 'P', 'C', 's', 'i', 't', 'n'}

>>> # 如果希望要单纯地往集合里添加数据,可以使用 add(elem) 方法:
>>> s.add("45")
>>> s
{'o', 'h', 'y', 'P', 'C', 's', 'i', 't', '45', 'n'}
>>> # 在集合中删除某个元素,可以使用 remove(elem) 或者 discard(elem) 方法
>>> s.remove('o')
>>> s
{'h', 'y', 'P', 'C', 's', 'i', 't', '45', 'n'}

>>> s.remove("没有的元素会报错!")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: '没有的元素会报错!'

>>> s.discard("没有的元素不会报错")
>>> # 删除还有一个 pop() 方法,用于随机从集合中弹出一个元素
>>> s
{'h', 'y', 'P', 'C', 's', 'i', 't', '45', 'n'}
>>> s.pop()
'h'
>>> s.pop()
'y'
>>> s.pop()
'P'
>>> s.pop()
'C'
>>> s.pop()
's'
>>> s.pop()
'i'
>>> s
{'t', '45', 'n'}
>>> s.pop()
't'
>>> s.pop()
'45'
>>> s
{'n'}
>>> s.pop()
'n'
>>> s
set()
>>> s = set("fishC")
>>> s
{'h', 'C', 's', 'f', 'i'}
>>> s.clear()
>>> s
set()

>>> # 可哈希
>>> hash(1)
1
>>> hash(1.0)
1
>>> hash(1.001)
1393716380

>>> # Python 中大多数不可变对象是可哈希的,而那些可变的容器则不哈希:
>>> hash("FishC")
-1442244524

>>> hash([1, 2, 3])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

>>> hash((1, 2, 3))
-2022708474

>>> # 集合它是一个可变的容器,而可变的容器则是不可哈希。
>>> a = frozenset("fishc")
>>> y = {a, 3, 5}
>>> y
{frozenset({'h', 's', 'f', 'i', 'c'}), 3, 5}
>>>

评分

参与人数 1荣誉 +2 贡献 +2 收起 理由
慢慢即漫漫 + 2 + 2 无条件支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-31 17:07:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 01:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表