美文网首页
Python set(集合)注意事项和常用操作

Python set(集合)注意事项和常用操作

作者: Cease息事 | 来源:发表于2019-06-27 19:33 被阅读0次

集合与常用操作

集合是工作中经常会使用到的一种数据类型; 使用起来也比较便捷, 下面是python中集合的常见操作;

关系测试:

操作 方法 运算符
交集 intersection() &
并集 union() |
子集 issubset() <
父集 issuperset() >
差集 difference() -
对称差集 symmetric_difference() ^
#Return True if two set have a null intersection
set_1 = {1,2,3,4}
set_2 = {2,3}
set_2.isdisjoint(set_1) # False

集合操作

example:set_1 = {2, 6, 8}

添加:

set_1.add(10) #Add an element to a set. This has no effect if the element is already present.
set_1.update([1, 3, 5]) #Update a set with the union of itself and others.

删除

set_1.pop() #Remove and return an arbitary set element. Raises KeyError if the set is empty.
set_1.remove(2) #Remove an element from a set; it must be a member. if not, raise KetError
set_1.discard(888) #Remove an element from a set if it is a member. if not, do nothing

注 意

<u>update()方法传入嵌套数据类型会怎么样?</u>

<u>这里假如</u>set_1.update([7,8,(9,10)]), <u>结果会报错吗</u>?

这里会传入set_1,得到{7,8,(9,10)}

那么如果传入的是[7,8,[9,10]]又会怎么样呢?

当然了,传入这样的嵌套格式是会报错(TypeError: unhashable type: 'list')的, 原因如下:

类型错误,不可拆卸类型,也叫不可哈希。出现这种异常是因为在使用set()过程中,set()传递进来的是不可哈希的元素,而列表嵌套内部由于不分解,要被当做集合内的元素,必须是可哈希的,我们知道,在集合的定义中,set中的元素是不重复的,无序的,里面的元素必须是可哈希的,即不可变的(int,str,tuple,bool)
可哈希的元素有:int、float、str、tuple
不可哈希的元素有:list、set、dict,那么里面嵌套的类型不能是这三种
为什么列表是不可哈希的,而 元组是可哈希的:

  • 因为 list 是可变的,可以在任意改变其内的元素值。
  • 元素可不可哈希,决定是否使用 hash值 进行索引
  • 列表不使用 hash 进行元素的索引,自然它对存储的元素没有可哈希的要求;而集合使用 hash 值进行索引。

相关文章

  • Python set(集合)注意事项和常用操作

    集合与常用操作 集合是工作中经常会使用到的一种数据类型; 使用起来也比较便捷, 下面是python中集合的常见操作...

  • Python集合(Set)常用操作

    定义 set是一个无序且不重复的元素集合。集合对象是一组无序排列可哈希的值,集合成员可以做字典中的键。集合用in和...

  • Python: set实例透析

    Python基础文章集合请移步。 Python里的 set数据类型 set是无序unique值的集合,常用来去重,...

  • Python精简入门学习(十三)

    Python精简入门学习之集合 -set -创建集合 -添加操作 -清空操作 -差集操作 -交集操作 -并集操作 ...

  • python集合操作

    python的集合操作 set是一个无序不重复的序列 可以用 { } 或者 set( ) 函数创建集合 集合存放不...

  • Python set 集合操作

    set集合是元素的聚集,具有无序,唯一性两大特点。常见的用途包括成员检测、从序列中去除重复项以及数学中的集合类计算...

  • 面试聊几句

    一.常用的集合 Collection下的List集合的话有ArrayList和LinkedList,Set集合常用...

  • 算法:查找表Map与Set(四)

    一、集合(无序且唯一) 1、常用操作 使用Set对象: new、add、delete、has、size 迭代Set...

  • Python进阶5

    深入Python的set和dict dict常用操作 引言 clear(): 清空字典 copy(): 返回一个浅...

  • Python组合数据类型Set, list, tuple, di

    集合类型 及 操作集合使用{}和set()函数创建集合间操作:交(&)、并(|)、差(-)、补(^)、比较(>=<...

网友评论

      本文标题:Python set(集合)注意事项和常用操作

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