Python中集合类型(set)学习小结

Python中集合类型(set)学习小结

概述

Python中的集合(set)是一种用于存储无序但唯一元素的数据类型。它基于数学中的集合概念,并且支持集合的各种数学运算。集合可以包含任何可哈希的数据类型,但集合本身是不可哈希的,而且没有顺序。

与列表和元组不同,集合没有索引,因此不能通过索引访问元素。但是,集合支持的操作范围更广,比如交集、并集、差集等等。

创建集合

可以使用花括号({})或set()函数来创建集合。注意,如果使用花括号来创建空集合,必须使用set()函数。否则,花括号创建的将是一个空字典。

# 创建集合
set1 = {1, 2, 3, 4, 5}
set2 = set('hello')
set3 = set()

# 打印集合
print(set1)  # {1, 2, 3, 4, 5}
print(set2)  # {'e', 'l', 'h', 'o'}
print(set3)  # set()

集合运算

并集

并集是指两个集合的所有元素的集合。使用|运算符或union()方法进行并集计算。

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# 计算并集
print(set1 | set2)          # {1, 2, 3, 4, 5, 6, 7, 8}
print(set1.union(set2))     # {1, 2, 3, 4, 5, 6, 7, 8}

交集

交集是指两个集合中都包含的元素的集合。使用&运算符或intersection()方法进行交集计算。

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# 计算交集
print(set1 & set2)                  # {4, 5}
print(set1.intersection(set2))      # {4, 5}

差集

差集是指只属于一个集合而不属于另一个集合的元素的集合。使用-运算符或difference()方法进行差集计算。

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# 计算差集
print(set1 - set2)                  # {1, 2, 3}
print(set1.difference(set2))        # {1, 2, 3}

对称差

对称差是指两个集合中所有不相同元素的集合。使用^运算符或symmetric_difference()方法进行对称差计算。

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# 计算对称差
print(set1 ^ set2)                  # {1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2))      # {1, 2, 3, 6, 7, 8}

其他集合操作

添加元素

使用add()方法来向集合中添加元素。

set1 = {1, 2, 3, 4, 5}

# 添加元素
set1.add(6)
print(set1)  # {1, 2, 3, 4, 5, 6}

删除元素

使用remove()方法从集合中删除元素。

set1 = {1, 2, 3, 4, 5}

# 删除元素
set1.remove(3)
print(set1)  # {1, 2, 4, 5}

示例说明

示例一

下面的示例演示如何使用集合来统计一个字符串中不同字符的个数。

s = 'hello, world'
unique_chars = set(s)

print(len(unique_chars))  # 10

示例二

下面的示例演示如何使用集合来去除一个列表中的重复元素。

lst = [1, 2, 3, 4, 3, 2, 1]
unique_lst = set(lst)

print(unique_lst)  # {1, 2, 3, 4}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中集合类型(set)学习小结 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 基于Python记录一场2023的烟花

    下面是详细讲解基于Python记录一场2023的烟花的完整攻略。 1. 准备工作 在使用 Python 记录烟花的过程前,需要先准备好需要使用的第三方库,包括 numpy 和 matplotlib。你可以通过以下命令在命令行中安装它们: pip install numpy matplotlib 2. 记录烟花的过程 2.1. 生成起点和目标点 在记录烟花的过…

    python 2023年6月2日
    00
  • python 调用钉钉机器人的方法

    当你需要将日志或者信息实时推送到钉钉群聊中时,可以通过使用钉钉机器人来实现。Python可以通过请求钉钉机器人API接口,来调用该机器人进行消息推送。下面是Python调用钉钉机器人的详细攻略。 1、钉钉机器人的设置 首先,在钉钉群内添加机器人,具体操作如下: 在群聊界面中,点击右上角的设置按钮; 在弹出的窗口中,点击「添加机器人」; 给机器人起一个名称,并…

    python 2023年5月30日
    00
  • 用python写一个windows下的定时关机脚本(推荐)

    当我们需要让电脑在一定时间后自动关机时,可以用python编写定时关机脚本。以下是实现的完整攻略: 步骤1:编写脚本 打开任意文本编辑器,新建一个空白文件,将以下代码复制进去: import os import time shutDownTime = int(input("请输入多少分钟后自动关机:")) os.system("…

    python 2023年5月23日
    00
  • 如何在 Redis 中使用流存储数据?

    如何在 Redis 中使用流存储数据? Redis 是一种高性能的键值存储数据库,支持多种数据结构和高级功能。其中,流是 Redis 的一个要功能,可以用于存储和处理时间序列数据。在本文中,我们将介绍如何在 Redis 中使用流存储数据,包括创建流、添加数据、读取数据等操作。 步骤1:连接 Redis 数据库 在 Python,我们可以使用 Redis-py…

    python 2023年5月12日
    00
  • Android AccessibilityService 事件分发原理分析总结

    Android AccessibilityService 事件分发原理分析总结 什么是 AccessibilityService AccessibilityService 是一个 Android 平台提供的服务,它可以在后台监听用户界面的各种操作行为,如点击、输入等,基于这些行为可以完成一些自动化的任务,例如自动填充、模拟点击等。 事件分发的原理 Acces…

    python 2023年6月13日
    00
  • Python 中的参数传递、返回值、浅拷贝、深拷贝

    参数传递 Python中的参数传递可以分为可变对象和不可变对象两种情况。 对于不可变对象,例如数字、字符串、元组等等,传递参数时会创建其副本,以避免函数内部对参数的修改影响到函数外的变量。 对于可变对象,例如列表、字典等等,传递参数时会将引用传递给函数,函数内部对参数的修改同样会影响到函数外的变量。 下面是一些示例说明: 示例1 – 不可变对象 def ch…

    python 2023年5月13日
    00
  • Python中捕获键盘的方式详解

    Python中捕获键盘的方式详解 什么是键盘捕获? 键盘捕获是指获取用户在键盘上输入的信息。在很多 Python 应用程序中,我们需要获取用户在键盘上输入的信息,然后对输入的内容进行处理。 Python中捕获键盘敲击的方式 Python通过内置的input()方法,可以实现简单的键盘输入捕获,但是这种方式只能获取用户在按下回车键之后输入的信息,并且不能捕获用…

    python 2023年5月14日
    00
  • 一些Python 5行代码的神奇操作汇总

    那么现在我将为您讲解“一些Python 5行代码的神奇操作汇总”的完整攻略。 一些Python 5行代码的神奇操作汇总 简介 这篇文章主要介绍一些Python 5行代码的神奇操作,让大家在编写Python代码时更加高效。 内容 列表去重 new_list = list(set(old_list)) 有时候我们会遇到需要对列表进行去重的情况,这里给出了用5行代…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部