📌  相关文章
📜  Python集 |两组成对的完整字符串(1)

📅  最后修改于: 2023-12-03 15:19:36.649000             🧑  作者: Mango

Python 集 | 两组成对的完整字符串

在 Python 中,有多种方式可以创建和操作字符串。本篇文章将介绍如何使用集合(set)来处理字符串。

什么是集合(set)?

集合是一组无序、唯一的元素的容器,其中的元素不重复。在 Python 中,可以使用大括号({})或 set() 函数来创建集合对象。例如:

set1 = {'apple', 'banana', 'orange'}
set2 = set(['apple', 'banana', 'pear'])

请注意,与字典不同,集合不含键值对。每个元素都是一个独立的对象。

集合操作
并集

可以使用 | 运算符或 union() 方法将两个集合合并为一个:

set1 = {'apple', 'banana', 'orange'}
set2 = {'banana', 'pear', 'apple'}
set3 = set1 | set2 # {'apple', 'banana', 'orange', 'pear'}
set4 = set1.union(set2) # {'apple', 'banana', 'orange', 'pear'}
交集

可以使用 & 运算符或 intersection() 方法获取两个集合的交集:

set1 = {'apple', 'banana', 'orange'}
set2 = {'banana', 'pear', 'apple'}
set3 = set1 & set2 # {'apple', 'banana'}
set4 = set1.intersection(set2) # {'apple', 'banana'}
差集

可以使用 - 运算符或 difference() 方法获取两个集合的差集:

set1 = {'apple', 'banana', 'orange'}
set2 = {'banana', 'pear', 'apple'}
set3 = set1 - set2 # {'orange'}
set4 = set1.difference(set2) # {'orange'}
对称差集

可以使用 ^ 运算符或 symmetric_difference() 方法获取两个集合的对称差集,即只存在于其中一个集合的元素:

set1 = {'apple', 'banana', 'orange'}
set2 = {'banana', 'pear', 'apple'}
set3 = set1 ^ set2 # {'orange', 'pear'}
set4 = set1.symmetric_difference(set2) # {'orange', 'pear'}
应用

利用集合操作,我们可以快速处理字符串。例如,假设我们有两个字符串:

str1 = 'hello world'
str2 = 'world hello'

我们可以将它们转化为集合,然后使用集合操作获取它们的交集或并集:

set1 = set(str1.split())
set2 = set(str2.split())
common_words = set1 & set2
all_words = set1 | set2

其中,split() 方法会将字符串按空格分割为单词,然后使用 set() 函数将其转化为集合。我们可以使用 len() 函数获取集合中元素的数量,从而计算常见单词占比:

common_ratio = len(common_words) / len(all_words) # 0.5

利用集合操作,我们可以快速处理文本数据,并提取关键信息。