Python基础【day03】:集合

一、概述

集合是无序的,天生不重复的数据组合,它的作用如下:

  • 去重,即:把一个列表变成集合,就去重了
  • 关系测试,即:测试两组集合的交集、并集和差集等

二、定义

1、语法

>>> name_1 = [1,2,3,4,7,8,7,10]
#把列表转换为集合
>>> name_1 = set(name_1)
#转换后,去重
>>> print(name_1,type(name_1))
{1, 2, 3, 4, 7, 8, 10} <class ‘set‘>

三、关系测试

1、交集(intersection())

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#输出结果
>>> name_1.intersection(name_2)
{8, 1, 10, 3}

2、并集(union())

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#输出结果
>>> name_1.union(name_2)
{1, 2, 3, 4, 5, 7, 8, 10}

3、差集(difference())

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#输出结果
>>> name_1.difference(name_2)
{2, 4, 7}

注:差集取的是数值在第一个集合中,但是不在第二个集合中(在我不在你)

4、issubset()

判断一个集合是否是另一个集合的子集

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_3 = [1,2,3,4]
>>> name_1 = set(name_1)
>>> name_3 = set(name_3)
#输出结果
>>> name_3.issubset(name_1)
True

5、issuperset()

判断一个集合是否是另一个集合的父集

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_3 = [1,2,3,4]
>>> name_1 = set(name_1)
>>> name_3 = set(name_3)
#输出结果
>>> name_1.issuperset(name_3)
True

6、对称差集(symmetric_difference())

把两个集合没有交集的数值取出来

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#输出结果
>>> name_1.symmetric_difference(name_2)
{2, 4, 5, 7}

7、isdisjoint()

判断两个集合是否有交集,没有交集,则返回True

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_3 = [11]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
>>> name_3 = set(name_3)
#有交集
>>> name_1.isdisjoint(name_2)
False
#无交集
>>> name_1.isdisjoint(name_3)
True

四、关系测试(特殊符号)

1、交集(&)

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#结果输出
>>> name_1 & name_2
{8, 1, 10, 3}

2、并集(|)

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#结果输出
>>> name_1 | name_2
{1, 2, 3, 4, 5, 7, 8, 10}

3、差集(-)

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#结果输出
>>> name_1 - name_2
{2, 4, 7}

4、对称差集(^)

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#输出
>>> name_1 ^ name_2
{2, 4, 5, 7}

5、是否是子集(<=)

>>> name_1 = [1,2,3,4,7,8,10]
>>> name_3 = [1,2,3,4]
>>> name_1 = set(name_1)
>>> name_3 = set(name_3)
#输出
>>> name_3 <= name_1
True

6、是否是父集(>=)

>>> name_1 = [1,2,3,4,7,8,10]
>>> name_3 = [1,2,3,4]
>>> name_1 = set(name_1)
>>> name_3 = set(name_3)
#输出
>>> name_1 >= name_3
True

五、基本操作

1、添加(add())

>>> name_2 = [1,3,5,8,10]
>>> name_2 = set(name_2)
#添加已存在,不报错
>>> name_2.add(1)
>>> name_2
{8, 1, 10, 3, 5}
#添加不存在,添加一个新的数值
>>> name_2.add(11)
>>> name_2
{1, 3, 5, 8, 10, 11}

2、添加多项(update())

>>> name_2 = [1,3,5,8,10]
>>> name_2 = set(name_2)
>>> name_2.update([12,13,14])
#输出结果
>>> name_2
{1, 3, 5, 8, 10, 12, 13, 14}

3、删除(remove(),pop(),discard())

①remove()

>>> name_2 = [1,3,5,8,10]
>>> name_2 = set(name_2)
>>> name_2
{8, 1, 10, 3, 5}
>>> name_2.remove(1)
#输出
>>> name_2
{8, 10, 3, 5}
#删除不存在的元素,会报错
>>> name_2.remove(1)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
KeyError: 1

注:用remove删除时,当元素不存在,会报错

②pop()

>>> name_2 = [1,3,5,8,10]
>>> name_2 = set(name_2)
>>> name_2
{8, 1, 10, 3, 5}
#输出
>>> name_2.pop()
8

注:pop是随机删除集合中的某个元素,并且打印

③discard()

>>> name_2 = [1,3,5,8,10]
>>> name_2 = set(name_2)
>>> name_2.discard(10)
#输出结果
>>> name_2
{8, 1, 3, 5}
#删除不存在元素,不报错
>>> name_2.discard(10)

注:用discard删除不存在的元素,不会出现报错

4、长度(len())

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_1 = set(name_1)
#结果输出
>>> len(name_1)
7

5、x in s

测试 x 是否是 s 的成员

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_1 = set(name_1)
#结果输出
>>> 1 in name_1
True

6、x not in s

测试 x 是否不是 s 的成员

>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_1 = set(name_1)
#输出
>>> 12 not in name_1
True
时间: 2024-07-30 08:08:23

Python基础【day03】:集合的相关文章

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基础-day03

写在前面 上课第三天,打卡:  不要让干净的灵魂染上尘埃,永远年轻.永远热泪盈眶 一.再谈编码 - 文件的概念 '文件' 是一个抽象的概念,是操作系统提供的外部存储设备的抽象,对应底层的硬盘:它是程序和数据的最终存放地点. 操作系统把硬盘存储的具体操作封装起来,提供一些简单易用的API,让用户不用去关心底层复杂的实现方法: 即:让用户的数据存放变得容易.方便和可靠. 另外,磁盘没有 '修改' 一说,全部都是覆盖: - Unicode 和 utf-8 > 备注:这段精辟的解释来自于 林海峰老师的博

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

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

Python 基础之集合及基本数据类型总结

1. 前面知识回顾1.1 根据不同条件为数据类型分类1.1.1 可变不可变① 可变:列表.字典② 不可变:字符串.数字.元组1.1.2 访问顺序① 直接访问:数字② 顺序访问:字符串.列表.元组③ 映射:字典1.1.3 存放元素个数容器类型:列表.元组.字典原子:数字.字符串2. 集合(set)2.1 集合介绍2.1.1 作用去重,关系运算.2.1.2 定义 由不同元素组成,集合是一组无序排列的可 hash 值,可以作为字典的 key. 集合的目的是将不同的值存放到一起,不同的集合之间用来做关系