跟老齐学Python之集合的关系

接下来我将详细讲解“跟老齐学Python之集合的关系”的完整攻略。

什么是集合?

集合是Python中的一种数据类型,它是一组无序、唯一的元素。集合的创建方式有两种,分别是使用set()函数和使用花括号{}。下面是两种方式的创建集合代码示例:

# 使用 set() 函数创建集合
my_set = set([1, 2, 3, 4, 5])
print(my_set)

# 使用花括号 {} 创建集合
my_set = {1, 2, 3, 4, 5}
print(my_set)

输出结果都是 {1, 2, 3, 4, 5},因为集合是无序的,所以元素在输出时的顺序可能有所不同。

集合的常用操作

添加元素

集合可以使用 add() 方法向其中添加元素,例如:

my_set = {1, 2, 3}
my_set.add(4)
print(my_set)   # 输出: {1, 2, 3, 4}

删除元素

集合可以使用 remove()discard() 方法删除元素,例如:

my_set = {1, 2, 3}
my_set.remove(2)
print(my_set)   # 输出: {1, 3}

交集、并集和差集

  • 交集:集合的交集可以使用 & 运算符或者 intersection() 方法实现。示例代码如下:
set1 = {1, 2, 3}
set2 = {2, 3, 4}
common_set = set1 & set2
print(common_set)   # 输出: {2, 3}
  • 并集:集合的并集可以使用 | 运算符或者 union() 方法实现。示例代码如下:
set1 = {1, 2, 3}
set2 = {2, 3, 4}
union_set = set1 | set2
print(union_set)   # 输出: {1, 2, 3, 4}
  • 差集:集合的差集可以使用 - 运算符和 difference() 方法实现。示例代码如下:
set1 = {1, 2, 3}
set2 = {2, 3, 4}
diff_set = set1 - set2
print(diff_set)   # 输出: {1}

跟老齐学Python中集合的应用

在跟老齐学Python中,集合的应用十分广泛。例如,在查找一个列表中所有不重复元素时,可以使用集合来实现:

my_list = [1, 2, 2, 3, 4, 4, 5, 5]
my_set = set(my_list)
unique_list = list(my_set)
print(unique_list)   # 输出: [1, 2, 3, 4, 5]

另外,在实现诸如统计一段英文文本中各个单词出现次数等操作时,也可以使用集合来帮助我们实现。例如下面的代码,它读取一个文件,并统计其中各个单词出现的次数:

with open('english.txt', 'r') as f:
    text = f.read()

words = text.split()
count_dict = {}
for word in words:
    if word not in count_dict.keys():
        count_dict[word] = 1
    else:
        count_dict[word] += 1

print(count_dict)

但是我们会发现,上面的代码并没有考虑到单词大小写、标点符号等问题,所以统计结果可能不准确。这时候,我们可以通过将所有单词转换成小写,并过滤掉标点符号之后,再统计它们的出现次数。下面的代码演示了如何使用集合帮助我们完成这个操作:

import re

with open('english.txt', 'r') as f:
    text = f.read()

words = re.findall(r'\b\w+\b', text.lower())
count_dict = {}
for word in words:
    if word not in count_dict.keys():
        count_dict[word] = 1
    else:
        count_dict[word] += 1

print(count_dict)

上面的代码使用了正则表达式来过滤标点符号,并将所有单词转换成小写,再进行统计。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:跟老齐学Python之集合的关系 - Python技术站

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

相关文章

  • Golang中由零值和gob库特性引起BUG解析

    本攻略将讲解Golang中的零值与gob库的特性引起的BUG,主要包括以下几个方面的内容: 什么是Go中的零值? 什么是gob库? gob库的特性引起的BUG 如何避免由gob库特性造成的BUG。 什么是Go中的零值? 在Go语言中,每个类型都有一个零值,它是指该类型的一个默认值。在声明变量但没有给出初始值时,变量将被赋予零值。比如,字符串类型的零值为空字符…

    python 2023年6月2日
    00
  • Python 时间操作datetime详情(下)

    Python 时间操作datetime详情(下) 在《Python 时间操作datetime详情(上)》中,我们已经介绍了 date, time, datetime 对象的基本方法。在本篇文章中,我们将继续介绍 datetime 对象的进阶用法。 一、字符串和 datetime 之间的转换 datetime 对象转字符串 datetime 对象可以使用 st…

    python 2023年5月14日
    00
  • python包导入的两种方式

    当我们需要在Python程序中引用其他自定义或第三方的代码时,需要使用到包导入功能,这里介绍两种常见的包导入方式:直接导入与间接导入。 直接导入 1. 模块直接导入 直接导入模块是指直接使用import导入单个模块,语法如下: import module_name 其中,module_name为需要导入的模块名称。 例如,导入Python标准库中的math模…

    python 2023年6月3日
    00
  • 详解python中init方法和随机数方法

    详解Python中init方法和随机数方法 什么是__init__方法 在Python中,__init__方法是一个特殊的方法,用于对新创建的对象进行初始化。所有的类都有一个__init__方法,如果在类的定义中没有显式地定义,则会继承父类的__init__方法。__init__方法通常用于设置对象的初始状态,或者执行一些必要的设置操作。 如何使用__ini…

    python 2023年6月3日
    00
  • 图像金字塔

    图像金字塔 简单来说就是 自下而上图像一步一步缩小 1 高斯金字塔(涉及高斯分布)   向下采样(缩小,对金字塔来说是自下向上)   第一步: 高斯滤波去噪   第二部:将偶数行和列去掉   向上采样(放大,对金字塔来说是自上向下)   第一步:在每个方向上扩大两倍,新增的行和列填充0   第二步:利用之前同样的内核进行卷积,获得近似值(高斯滤波?)   注…

    python 2023年4月24日
    00
  • 详解Bagging算法的原理及Python实现

    标题:详解Bagging算法的原理及Python实现 一、背景介绍 Bagging算法是一种集成学习算法,可以有效地提高机器学习的准确性。本文将介绍Bagging算法的原理以及如何使用Python实现这个算法。 二、Bagging算法原理 Bagging算法的全称是Bootstrap Aggregating(自举聚合),其主要思想是通过生成多个相互独立的分类…

    python 2023年5月14日
    00
  • 运行第一个Python程序

    Python作为解释型的编程语言,支持两种编程方式: 交互式编程 源文件编程 交互式编程 交互式编程指的是在命令行窗口打开python运行环境,在运行环境中输入代码,每输入一段代码运行一次程序,就好像跟计算机对话一样,所以称为交互式编程。 源文件编程 源文件编程意思是创建一个.py的文件,文件中可以写入大段的代码,运行时解释器会逐行读取并执行源文件的代码程序…

    2022年11月1日
    00
  • 三个520专属Python表白代码分享

    针对“三个520专属Python表白代码分享”的完整攻略,我会从以下几个方面进行详细讲解: 简要介绍Markdown和Python; 介绍三个表白代码分享,并提供详细的示例说明; 附上代码和截图。 1. 简要介绍Markdown和Python Markdown是一种轻量级标记语言,可以使用简单的语法来排版文本,并且还可以方便地转换成HTML等其他格式。Mar…

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