集合(set)

定义:由不同元素组成的集合,集合中是一组无序排列可hash的值(不可变的值)例如数字、字符串、元组,可以作为字典的key

定义集合:

# 定义集合
s = {1, 2, 3, 3, 3, 4, 5}
print(s)
print(type(s))

输出:

{1, 2, 3, 4, 5}
<class 'set'>

定义可变集合set

# 定义可变集合
s = set("hello") # ()内为可迭代类型
print(s)

输出:

{'l', 'h', 'o', 'e'}

定义不可变集合

# 定义不可变集合
s = frozenset("hello") # ()内为可迭代类型
print(s)

输出:

frozenset({'l', 'h', 'e', 'o'})

集合关系运算(方法)

  1、intersection()

num1 = {1, 2, 3}
num2 = {2, 3, 4}
# 求交集
print(num1.intersection(num2))
# 相当于
print(num1 & num2)

输出:

{2, 3}
{2, 3}

  2、union()

num1 = {1, 2, 3}
num2 = {2, 3, 4}
# 求并集
print(num1.union(num2))
# 相当于
print(num1 | num2

输出:

{1, 2, 3, 4}
{1, 2, 3, 4}

  3、difference()

num1 = {1, 2, 3}
num2 = {2, 3, 4}
# 求差集
print(num1.difference(num2)) # 输出num1中有num2中没有的
# 相当于
print(num1 - num2)

输出:

{1}
{1}

  4、symmetric_difference()

num1 = {1, 2, 3}
num2 = {2, 3, 4}
# 求交差补集
print(num1.symmetric_difference(num2)) # 并集合交集的差集
# 相当于
print(num1 ^ num2)

输出:

{1, 4}
{1, 4}

方法

  1、add()

s = {1, 2, 3, 4}
# 添加一个元素
s.add((1, 2))
s.add(1)
print(s)

输出:

{(1, 2), 1, 2, 3, 4}

  2、clear()

  3、copy()

  4、pop()(随机删除)

s = {1, 2, 3, 4, "Aiden", 5, 6, 7, 8}
# 随机删除
s.pop()
print(s)

输出:

{1, 2, 3, 4, 5, 6, 7, 8}

  5、remove()

s = {1, 2, 3, 4, "Aiden", 5, 6, 7, 8}
# 指定元素删除
s.remove(3) # 指定的元素不存在会报错
print(s)

输出:

{'Aiden', 1, 2, 4, 5, 6, 7, 8}

  6、discard()

s = {1, 2, 3, 4, "Aiden", 5, 6, 7, 8}
# 指定元素删除
s.discard(3) # 指定的元素不存在不会报错
print(s)
s.discard(12)
print(s)

输出:

{1, 2, 4, 5, 6, 7, 8, 'Aiden'}

  7、difference_update()

num1 = {1, 2, 3}
num2 = {2, 3, 4}
# 求完num1和num2的差集后自动复制给num1
num1.difference_update(num2)
print(num1)

输出:

{1}

  8、intersection_update()

num1 = {1, 2, 3}
num2 = {2, 3, 4}
# 求完num1和num2的交集后自动复制给num1
num1.intersection_update(num2)
print(num1)

输出:

{2, 3}

  9、isdisjoint()

num1 = {1, 2}
num2 = {3, 4}
# 判断两个集合是否互斥
print(num1.isdisjoint(num2))

输出:

True

  10、issubset()

num1 = {1, 2}
num2 = {1, 2, 3}
# 判断num1是否为num2的子集
print(num1.issubset(num2)) # 相当于print(num1 <= num2)

输出:

True

  11、issuperset()

num1 = {1, 2}
num2 = {1, 2, 3}
# 判断num2是否为num1的父集
print(num2.issuperset(num1)) # 相当于print(num2 >= num1)  

输出:

True

  12、symmetric_difference_update()

num1 = {1, 2, 3}
num2 = {2, 3, 4}
# 求交差补集并把结果赋给num1
num1.symmetric_difference_update(num2)
print(num1)

输出:

{1, 4}

  13、update()

num1 = {1, 2, 3}
num2 = {2, 3, 4}
# update可以更新多个值
# 相当于取并集后赋值
# num1.update(num2)
# num1.update((4, 5))
num1.update([4, 5])
print(num1)

输出:

{1, 2, 3, 4, 5}

  14、根据集合的特点可简单去重(无序)

Python - 集合与元素之集合定义和基本操作方法的更多相关文章

  1. 【python基础】之元组 集合 字典

    元组 元组:元组和列表类似.但是元组中的元素是固定的(不能给一个元组添加,删除和替换元素以及重新排序) 1.创建元组 t1 = () #创建一个空元组 t2 = (1, 2, 3) t3 = tupl ...

  2. 六、Python集合定义和基本操作方法

    一.集合的定义方法及特点 1.特点: (1)由不同元素组成 #集合由不同元素构成 s={1,2,3,3,4,3,3,} print(s)#运行结果:{1, 2, 3, 4} (2)集合无序 #集合无序 ...

  3. 第二百九十八节,python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表

    python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表 sadd(name,values)name对应的集合中添加元素 #!/usr/bin/env python # -*- ...

  4. 定义一个Collection接口类型的变量,引用一个Set集合的实现类,实现添加单个元素, 添加另一个集合,删除元素,判断集合中是否包含一个元素, 判断是否为空,清除集合, 返回集合里元素的个数等常用操作。

    package com.lanxi.demo2; import java.util.HashSet; import java.util.Iterator; import java.util.Set; ...

  5. 洗礼灵魂,修炼python(7)--元组,集合,不可变集合

    前面已经把列表的基本用法讲解完 接着讲python的几大核心之--元组(tuple) 1.什么是元组? 类似列表,但为不可变对象,之前提到列表是可变对象,所谓可变对象就是支持原处修改,并且在修改前后对 ...

  6. Python数据结构之四——set(集合)

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 经过几天的回顾和学习,我终于把Python 3.x中的基础知识介绍好啦.下面将要继续什么呢?让我想想先~~~嗯,还是 ...

  7. Python基础__字典、集合、运算符

    之前讨论的字符串.列表.元组都是有序对象,本节则重点讨论无序对象:字典与集合.一.字典 列表是Python中的有序集合,列表中的序指的是列表中的元素与自然数集形成了一个一一对应的关系.例如L=['I' ...

  8. python全栈开发-Day5 集合

    python全栈开发-Day5 集合 一.首先按照以下几个点展开对集合的学习 #一:基本使用 1 .用途 2 .定义方式 3 .常用操作+内置的方法 #二:该类型总结 1. 存一个值or存多个值 只能 ...

  9. python之数据类型补充、集合、深浅copy

    一.内容回顾 代码块: 一个函数,一个模块,一个类,一个文件,交互模式下,每一行就是一个代码块. is == id id()查询对象的内存地址 == 比较的是两边的数值. is 比较的是两边的内存地址 ...

随机推荐

  1. yolo+keras+tensorflow出错:No module named 'leaky_relu'+

    结论:keras2.1.5+tensorflow1.6.0即可. 首先出现的是:No module named 'leaky_relu',此时把keras改成2.1.5照样出错,改成keras2.1. ...

  2. <Django> 第三方扩展

    1.富文本编辑器 tinymce为例 安装 pip install django-tinymce 在settings.py中的配置 配置应用 INSTALLED_APPS = [ 'django.co ...

  3. 开发环境、测试环境、生产环境、UAT环境、仿真环境详解

    版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/WYX15011474269/article ...

  4. 2、Zookeeper原理及应用汇总

    1 Zookeeper简介-分布式服务框架 ZooKeeper为分布式应用程序提供高效且可靠的分布式协调服务,提供的服务:配置管理.统一命名服务.分布式同步.组服务等,是Google Chubby的开 ...

  5. Ip- Linux必学的60个命令

    1.作用 ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig.route等,使用权限为超级用户.几乎所有的Linux发行版本都支持该命令. ...

  6. 【笔记篇】C#笔记1

    返回目录:目录请戳这里~ 以后的C#笔记如果不出意外的话都是Win10 Professional + VS2015 Professional出的,(当然还有直接在编译框敲的所以能不能过编译我也不知道┑ ...

  7. JavaScript设置body高度为浏览器高度的方法

    document.getElementsByTagName('body')[0].style.height = window.innerHeight+'px';

  8. day06 tar命令使用,vim简单操作以及linux开机过程

    上节课复习: cat: 查看全部文件内容 head: 从头查看文件内容,默认为前10行 tail: tail -f //动态查看文件是否增加内容 >> 追加 > 覆盖 more: 百 ...

  9. csp-s模拟测试56Merchant, Equation,Rectangle题解

    题面:https://www.cnblogs.com/Juve/articles/11619002.html merchant: 二分答案,贪心选前m大的 但是用sort复杂度不优,会T掉 我们只是找 ...

  10. C#一般处理程序设置和读取session(session报错“未将对象引用设置到对象的实例”解决)

    登陆模块时,用到了session和cookie.在一般处理程序中处理session,一直报错.最后找到问题原因是需要调用 irequiressessionstate接口. 在ashx文件中,设置ses ...