Python基础14 集合

集合(set)是一个无序的不重复元素序列。
当集合中的元素存在与否比其出现次序、出现次数更加重要时,我们就会使用集合。
通过使用集合,你可以测试某些元素的资格或情况,检查它们是否是其它集合的子集,找到两个集合的交集等;

一、创建集合

可以使用大括号 { } 或者 set() 函数创建集合。注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
如果要初始化一个带有值的集合,可以向set()传入一个列表。

创建格式:

>>> s = {1, 2, 3, 4, 5, 6}
>>> s
{1, 2, 3, 4, 5, 6}
>>> set([1, 2, 3, 4, 5, 6])
{1, 2, 3, 4, 5, 6}
>>> set(‘123456‘)
{‘3‘, ‘6‘, ‘5‘, ‘1‘, ‘2‘, ‘4‘}

二、集合运算

集合之间也可进行数学集合运算(例如:并集、交集等),可用相应的操作符或方法来实现。

1、子集

  子集,为某个集合中一部分的集合,故亦称部分集合。
  使用操作符 < 执行子集操作,也可使用方法 issubset() 完成。

>>> A = set(‘abcd‘)
>>> B = set(‘cdef‘)
>>> C = set("ab")
>>> C < A
True         # C 是 A 的子集
>>> C < B
False
>>> C.issubset(A)
True        

2、并集

  一组集合的并集是这些集合的所有元素构成的集合,而不包含其他元素。
  使用操作符 | 执行并集操作,同样地,也可使用方法 union() 完成。

>>> A | B
{‘c‘, ‘b‘, ‘f‘, ‘d‘, ‘e‘, ‘a‘}
>>> A.union(B)
{‘c‘, ‘b‘, ‘f‘, ‘d‘, ‘e‘, ‘a‘}

3、交集

  两个集合 A 和 B 的交集是含有所有既属于 A 又属于 B 的元素,而没有其他元素的集合。
  使用 & 操作符执行交集操作,同样地,也可使用方法 intersection() 完成。

>>> A & B
{‘c‘, ‘d‘}
>>> A.intersection(B)
{‘c‘, ‘d‘}

4、差集

  A 与 B 的差集是所有属于 A 且不属于 B 的元素构成的集合。
  使用操作符 - 执行差集操作,同样地,也可使用方法 difference() 完成。

>>> A - B
{‘b‘, ‘a‘}
>>> A.difference(B)
{‘b‘, ‘a‘}

5、对称差

  两个集合的对称差是只属于其中一个集合,而不属于另一个集合的元素组成的集合。
  使用 ^ 操作符执行差集操作,同样地,也可使用方法 symmetric_difference() 完成。

>>> A ^ B
{‘b‘, ‘f‘, ‘e‘, ‘a‘}
>>> A.symmetric_difference(B)
{‘b‘, ‘f‘, ‘e‘, ‘a‘}

三、集合的基本操作

1、add 添加元素

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

2、remove 移除元素(如果元素不存在,会引发 KeyError)

>>> s = {1, 2, 3, 4, 5, 6}
>>> s.remove(3)
>>> s
{1, 2, 4, 5, 6}
>>> s.remove(9)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 9

3、discard 移除元素(如果元素不存在,则不执行任何操作)

>>> s = {1, 2, 3, 4, 5, 6}
>>> s.discard(9)
>>> s
{1, 2, 3, 4, 5, 6}

4、pop 随机删除元素并返回(如果集合为空,会引发 KeyError)

>>> s = {1, 2, 3, 4, 5, 6}
>>> s.pop()  # pop删除时是无序的随机删除
1
>>> s
{2, 3, 4, 5, 6}

5、clear 清空集合

>>> s = {1, 2, 3, 4, 5, 6}
>>> s.clear()
>>> s
set()

四、集合与内置函数

下述内置函数通常作用于集合,来执行不同的任务。

函数 描述
all() 如果集合中的所有元素都是 True(或者集合为空),则返回 True。
any() 如果集合中的所有元素都是 True,则返回 True;如果集合为空,则返回 False。
enumerate() 返回一个枚举对象,其中包含了集合中所有元素的索引和值(配对)。
len() 返回集合的长度(元素个数)
max() 返回集合中的最大项
min() 返回集合中的最小项
sorted() 从集合中的元素返回新的排序列表(不排序集合本身)
sum() 返回集合的所有元素之和

参考文章:
https://www.cnblogs.com/suendanny/p/8597596.html
https://www.jianshu.com/p/95e912bfafaf
https://www.runoob.com/python3/python3-set.html

原文地址:https://www.cnblogs.com/mazhiyong/p/12531693.html

时间: 2024-08-29 16:14:08

Python基础14 集合的相关文章

Python基础之集合

Python基础三:一.数据类型排序: 可变与不可变: 1.可变:列表,字典 2.不可变:字符串,元组,数字 访问顺序: 1.直接访问:数字 2.顺序访问:字符串,列表,元组 3.映射:字典 存放元素个数: 1.容器类型:列表,元组,字典 2.原子类型:数字,字符串 二.集合 特点: 1.不同元素组成 2.是无序的 3.集合中的元素必须是不可变类型(数字,字符串,元组) 4.定义集合的方式:test = {'xyy','xyyp',1,2,3,4}或test = set('xyy') 三.集合功

25、python基础学习-集合

1 #!/usr/bin/env python 2 #__author: hlc 3 #date: 2019/6/1 4 5 # set 集合 6 # 集合 把不同的元素组成一起形成集合,集合时python的基础类型 7 # 组成集合的成员不可重复 8 # a = [1,2,3,4,5,1,2,3,4,5,"a","a","a","b","b""b","c"] 9 #

Python基础操作-集合

在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. list_1 = set([1,3,5,7,5,8,10]) list_2 = set([2,3,4,5,6,7,8]) list_3 = set([1,3,5]) 一:基本操作 添加一个add list_1.add(123)print(list_1){1, 3, 5, 7, 8, 10, 12

2015/9/18 Python基础(14):函数式编程

这篇写了忘发.现在补上. Python不是也不大可能成为一种函数式的编程语言,但是它支持许多有价值的函数式编程语言构建.也有些表现的像函数式编程机制但是从传统上也不能认为是函数式编程语言的构建.Python提供的以四中内建函数和lambda表达式的形式出现. 匿名函数与lambda lambda [arg1, [arg2, ... argN]]:expression Python允许用lambda关键字创造匿名函数.匿名是因为不需要以标准的方式来声明.然而,作为函数,它们也能有参数.一个完整的l

Python基础:集合

集合(set):把不同的元素组成一起形成集合,是python基本的数据类型. 集合分类:可变集合(set).不可变集合(frozenset),创建方式一样 集合特点:无序,唯一,速度快 1.创建集合 >>> s = set('ian') >>> s {'a', 'n', 'i'} >>> len(s) 3 >>> li = ['apple','pear','peach'] >>> s = set(li) >&g

python基础(集合、文件操作)

集合: 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系测试,测试两组数据之前的交集.差集.并集等关系. 1,集合的创建. set1 = set({1,2,'barry'}) set2 = {1,2,'barry'} print(set1,set2) # {1, 2, 'barry'} {1, 2, 'barry'} 2,集合的增. set1 = {'

python基础(集合,文件操作)

一.集合(set) 集合:1.无序的,不重复的 2.他里面的元素必须是可哈希的. int str bool () ,但是它本身是不可哈希的.   3.集合不能更改里面的元素   4.集合可以求交集,并集,差集,反交集等. 1.集合的创建 set1 = set({1,2,'alex'}) set2 = set1 print(set1,set2) # 输出结果:{1, 2, 'alex'} {1, 2, 'alex'} 2.集合的增(2种方式) 1.set1.add()(直接增加) set1 = {

【python基础】集合类型

集合类型: 作用: --> 关系运算(交集,并集,差集) --> 去重(有局限性) 定义方法:set() linuxers = {1,1.1,'a',(1,2,3)} ##集合内的值,只能为不可变类型,比如int,str,float,tupleprint(type(linuxers))<class 'set'> 需要掌握: 1.集合的定义方法 定义方法类似于字典,{}内,以逗号分割,但不同于字典之处不是key:varual格式,集合内的元素一定是不可变类型 1 pythoners

01.Python基础-3.集合容器

1 列表list 1.1 列表介绍 Python内置的一种数据类型是列表:list. 有序的集合,可随时添加和删除其中的元素. 每个元素都分配一个数字 --它的位置,或索引.0,1,2,3-- 可存放各种类型的数据 1.2 定义列表 列表名 = [值1,值2,值3.......] 1.3 列表-查 index count len max min 根据下标查找值 值 = xxx[index] name = ['a', 'b', 'c'] # 下标从0开始 n1 = name[0] # 'a' n2