容易忽略的数据类型:集合(set)_集合set方法

liftword4个月前 (02-26)技术文章19

python中数据类型定义明确:

1、字符串

2、布尔类型

3、整数

4、浮点数

5、数字

6、列表

7、元组

8、字典

9、日期

这些是我们经常用到的,有一个数据类型:集合,一个很有用的类型,同时也最容易忽略。

  • 介绍

set(集合),是一个无序且不重复的元素集合。集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值。

集合最重要的特征就是无序不重复,这个特性让我们可以对特定数据进行快捷处理。

  • 使用

生成一个set对象,一种方法是创建,一种方法是转换。

创建一个set:

操作一个set集合:

class set(object):

def add(self, *args, **kwargs): #添加元素

def clear(self, *args, **kwargs): # 清除内容

def copy(self, *args, **kwargs): # 浅拷贝

def difference(self, *args, **kwargs): # new_set.defference(setA,setB) :A中存在,B中不存在

def difference_update(self, *args, **kwargs): #new_set.defference_update(setA,setB) :从A集合中删除和B中相同的元素

def discard(self, *args, **kwargs): #移除指定元素,不存在不保错

def intersection(self, *args, **kwargs): #求交集,返回一个新集合

def intersection_update(self, *args, **kwargs): #
new_set.intersection_update(setA,setB) :取交集并更更新到A中

def isdisjoint(self, *args, **kwargs): # 如果没有交集,返回True,否则返回False

def issubset(self, *args, **kwargs): # 是否是子序列

def issuperset(self, *args, **kwargs): # 序列

def pop(self, *args, **kwargs): # 移除元素,并返回该元素

def remove(self, *args, **kwargs): # 移除指定元素,不存在保错

def symmetric_difference(self, *args, **kwargs): #返回两个集的对称差集作为一个新的集合。

def
symmetric_difference_update
(self, *args, **kwargs)
:new_set.symmetric_difference_update(A,B) :返回两个集的对称差集更新到A中

def union(self, *args, **kwargs): # 返回并集

def update(self, *args, **kwargs): # 更新集合

看到一个集合的操作方法,是不是觉得集合对数据处理存在着异常的方便呢?

  • 转换

python中list,dict,tuple都可以直接转换成set集合:

list或tuple转换的同时如果存在相同元素会自动保留一个。

  • 注意

在使用集合的时候,由于集合的性质,集合中的元素需为hash值,所以集合元素需保证为不可变元素。

如下图异常:


异常为:unhashable type: 'list' (数据类型不能被hash)

这种情况需要避免,方法可以将list中的可变元素更新为不可变元素在求集合,然后再更新回来,方法如下:


流程就是:数据转换 → 类型转换→类型转换→数据转换

我是以易读的方式处理的,生成环境中可以简写,提高代码执行效率。

更多的实践需要自行实现,欢迎订阅我的文章。

此文章为python实践派原创,特此声明!

相关文章

Python 集合(Set)的十个经典案例_python 集合 discard

Python 集合(Set)是一种无序、可变的数据结构,存储不重复的元素。集合类似于数学上的集合概念,可以进行交集、并集、差集等运算。1. 创建集合可以使用花括号 {} 或 set() 函数创建集合。...

神奇的 Python set():如何让重复元素无处可藏

前言如果你还没认真研究过 Python 中的集合(set)类型,那你可真是错失了一项神器!集合不仅能让你的代码变得更高效,还能避免一堆重复数据让你头疼。每当你用 Python 编程时,数据就像是无序的...

Python集合类型Set详细总结_python里面集合

(一)Python集合数据类型Set总结-1 1、set特点set 可以过滤重复元素,本身是无序的(元素顺序是混乱的)不重复的示例-1:set = {1,2,2,3,4,4,5,6,7,7}#输出se...

Python基础-Python中集合Set的高级操作介绍

在之前的分享中,我们介绍了关于Python中Set集合的简单操作,实际上在Python中还提供了关于Set集合更多强大的操作功能,下面我们就来详细看看这些高级功能的使用。交集、并集、差集和对称差集两个...

Python set_python set和list的区别

Python 也包含有 集合 类型。集合是由不重复元素组成的无序的集。它的基本用法包括成员检测和消除重复元素。集合对象也支持像 联合,交集,差集,对称差分等数学运算。集合结构如下:set1 = {'h...