Python札记10_集合set

作者: 皮皮大 | 来源:发表于2019-06-18 22:10 被阅读0次

集合setPython中的另一种数据类型,用{ }括起来表示,里面是单个的对象,不是键值对。集合的特点是里面的元素有的可变,有的不可变;元素无次序,元素不可重复。集合set可以说是列表和字典的杂合

  • 元素无序
  • 元素是不可变,可哈希的
  • 自动去重
  • 集合没有索引,不属于序列
  • 空集合只能通过set()方法进行创建

创建集合set

创建集合有两种方式:

  • 通过set()函数创建
  • 通过{ }直接进行创建
  • 创建空集合一定要用set方法,否则Python会认为是字典

set创建
如果有重复的元素会自动进行过滤,一种高效的去重方式:

s1 = set("peter")
print(s1)

{'p', 't', 'e', 'r'}

{ }创建
同样的会自动去重创建,由于{ }已经使用在字典中,不建议使用

s2 = {"p", "e", "t", "e", "r"}
print(s2)

{'t', 'r', 'e', 'p'}

frozenset()

通过set创建的集合都是可变,不可哈希的集合;通过frozenset创建的是不可变的集合

哈希和不可哈希

哈希hashable:不可变的,例如字符串、整数型、布尔值等,字典的键必须是不可变的
不可哈希unhashable:可变的,例如列表、字典等,利用set()创建的集合是可变集合


集合set的方法

方法 作用
add() 给一个集合增加元素,参数只能有一个:集合与元素
update 用原有集合自身个其他东西构成的新集合,来更新原来的集合
pop 随机删除一个元素,返回元素本身;不能指定参数,不能指定删除某个元素
remove(obj) obj必须是集合set中的元素,否则报错;没有返回值
discard(obj) obj如果在集合中就执行删除,否则不进行任何操作,与remove不同
clear() 删除所有元素,bool(set)False
# add
s3 = set()
s3.add("peter")     # 一次只能增加一个元素
print(s3)
s4 = set("python")
s4.add("xiaoming")
# s4.add('[1, 2, 3]')    报错:列表是可变,不可哈希的;但集合中的元素必须是不可变的,可哈希的
print(s4)

{'peter'}
{'h', 'p', 'o', 't', 'y', 'xiaoming', 'n'}

# update
s3.update(s4)    #  将s4中的元素合并到s3中
print(s3)

{'n', 'xiaoming', 'peter', 'y', 'p', 'h', 't', 'o'}

s4.update("goo")
print(s4)

{'xiaoming', 'y', 't', 'p', 'g', 'h', 'n', 'o'}   # 注意结果的去重

s4.update((2, 3))
print(s4)

{2, 3, 't', 'g', 'xiaoming', 'p', 'n', 'h', 'y', 'o'}

集合运算

  • 元素和集合关系:判断元素是否在集合中:in
  • 集合与集合的关系:
  1. 两个集合是否相等 ==
  2. 超集B.issuperset(A)B>A和子集A.issubset(B)A<B关系
  3. 并集:A.union(B)或者使用|得到新的集合,原来的集合不变
  4. 交集:A.intersection(B)或者使用&
  5. 差集:A.difference(B)或者A-B,(A中存在,B中不存在的元素)
  6. 对称差集:A.symmetric_difference(B),(A,B的并集除去A,B的交集)

相关文章

  • Python札记10_集合set

    集合set是Python中的另一种数据类型,用{ }括起来表示,里面是单个的对象,不是键值对。集合的特点是里面的元...

  • 一个月没更新,今天来复习下python集合,你学会了吗?

    Python集合,你学会了吗? Python之集合(set) 集合(set)是一个无序的不重复元素序列。 可以使用...

  • python set集合,排序输出

    python set集合,排序输出 列表-->集合-->列表-->list sort() == 集合-->列表--...

  • Python 学习笔记 - 集合

    Python 集合 集合(set)是无序的、不重复的元素序列。 创建集合 使用花括号 { } 或者 set() 函...

  • Python: set实例透析

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

  • python list与set的区别

    python list与set的区别 python数据类型:列表List, Set集合; 列表List: 1.创...

  • Python中的set集合

    标签: set集合 set集合,在Python中的书写方式的{},集合与之前列表、元组类似,可以存储多个数据,但是...

  • python集合操作

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

  • Python ☞ day 4

    Python学习笔记之 (set)集合 & 迭代器 & 函数 & 匿名函数 & 高阶函数 set set:类似di...

  • 10.Python基础数据类型之集合

    Python基础数据类型之集合 集合(set)集合(set)是一个无序的、不重复元素序列,因此集合没有索引且没有重...

网友评论

    本文标题:Python札记10_集合set

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