16-set集合

作者: ju7ran | 来源:发表于2019-04-05 13:41 被阅读0次

集合set

set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。集合使用大括号({})框定元素,并以逗号进行分隔。但是注意:如果要创建一个空集合,必须用 set() 而不是 {} ,因为后者创建的是一个空字典。

集合数据类型的核心在于自动去重。

s = set([1,1,2,3,3,4])
s
{1, 2, 3, 4}        # 自动去重
-------------------------------------
>>> set("this is test")     # 对于字符串,集合会把它一个一个拆开,然后去重,空格是空格去重
{'t', ' ', 's', 'h', 'e', 'i'}

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

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

可以通过update()方法,将另一个对象更新到已有的集合中,这一过程同样会进行去重。

>>> s
{1, 2, 3, 4, 5}
>>> s.update("json")
>>> s
{1, 2, 3, 4, 5, 'j', 's', 'n', 'o'}

通过remove(key)方法删除指定元素,或者使用pop()方法。注意,集合的pop方法无法设置参数,删除指定的元素:

s
{1, 2, 3, 4, 5, 'j', 's', 'n', 'o'}
s.remove("n")
{1, 2, 3, 4, 5, 'j', 's', 'o'}
s.pop()         # 弹出第一个元素
1
s.pop(3)
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    s.pop(3)
TypeError: pop() takes no arguments (1 given)

需要注意的是,集合不能取出某个元素,因为集合既不支持下标索引也不支持字典那样的通过键值对获取。

除了add、clear、copy、pop、remove、update等集合常规操作,剩下的全是数学意义上的集合操作,交并差等等

对集合进行交并差等,既可以使用union一类的英文方法名,也可以更方便的使用减号表示差集,“&”表示交集,“|”表示并集 。

x = set('runoob')
y = set('google')
x, y
(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l']))   # 重复的被删除
x & y         # 交集
set(['o'])
x | y         # 并集
set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'])
x - y         # 差集
set(['r', 'b', 'u', 'n'])

集合数据类型属于Python内置的数据类型,但不被重视,在很多书籍中甚至都看不到一点介绍。其实,集合是一种非常有用的数据结构,它的去重和集合运算是其它内置类型都不具备的功能,在很多场合有着非常重要的作用,比如网络爬虫。

相关文章

  • 16-set集合

    集合set set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。集合使用大括号({})框定元素...

  • 我的Swift的学习总结 -->第二周

    集合 集合:Set,定义一个集合可以写成:var 集合名 : Set<集合类型> = [集合元素],具体的集合应用...

  • markdown 测试

    集合 集合 集合 引用

  • kotlin学习第五天:集合,高阶函数,Lambda表达式

    集合 list集合 list集合分为可变集合与不可变集合。由list of创建的集合为不可变集合,不能扩容,不能修...

  • kotlin练习 ---- 集合练习

    kotlin练习 - 集合练习 Set集合 Set集合创建 Set集合的使用 List集合 List集合创建 Li...

  • 集合总结

    集合 集合分为单列集合和双列集合两种: 一.单列集合: Collection是单列集合的顶级接口: 其中有三类集合...

  • 映射、元组、集合

    映射 元组 集合 集合之seq 集合之set 集合之map

  • 16.Collection集合

    主要内容: Collection 集合 迭代器 增强for List 集合 Set 集合 1,集合 集合是java...

  • 集合与有序集合

    集合分为有序集合 (zset) 和无序集合 (set), 一般无序集合也直接说成集合 无序集合 (set) 无序集...

  • python入坑第八天|集合

    好的,各位蛇友,我们今天来学习集合。 内容: 集合的创建 集合操作符号 集合的内置函数 集合的创建 集合用set(...

网友评论

    本文标题:16-set集合

    本文链接:https://www.haomeiwen.com/subject/jeghiqtx.html