欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python3基础语法之集合类型

程序员文章站 2022-07-08 17:24:42
set也是一种组合数据类型,支持成员关系操作(in)、对象大小计算操作符(len()),并且是iterable。集合数据类型至少提供一个set.isdisjoin()方法,支持比较,也支持为逻辑操作(在集合用于联合、交叉等上下文中使用)。可变的set类型固定的frozenset类型......

set也是一种组合数据类型,支持成员关系操作(in)、对象大小计算操作符(len()),并且是iterable。集合数据类型至少提供一个set.isdisjoin()方法,支持比较,也支持为逻辑操作(在集合用于联合、交叉等上下文中使用)。只有可哈希运算的对象可以添加到集合中,可哈希运算的对象包含一个__hash__()特殊方法,其返回值在某个对象的整个生命周期内都是相同的,并且可以使用__eq()__特殊方法进行相等性比较。
所有内置的固定数据类型(比如float、frozenset、int、str、tuple)都是可哈希运算的,都可以添加到集合中。内置的可变数据类型(比如dict、list、set)都不是可哈希运算的,因为其哈希值会随着包含项数的变化而变化。
操作符==与!=都是逐项比较(对嵌套项,比如集合内的元组或固定集合,则递归比较)其他比较操作符则进行子集比较火超集比较。

可变的set类型 {}

集合中的项是无序的,没有索引位置的概念,不能分片或按步距分片。set数据类型可以作为函数进行调用,不带参数进行调用时将返回一个空集合;带一个set参数时返回该参数的浅拷贝;对任意其他参数,则尝试将给定的对象转换为集合。空集合必须使用set()创建,而不能使用{}来创建
Python3基础语法之集合类型
set(“apple”)、set(“aple”)和{‘e’,‘p’,‘a’,‘l’}产生的三个集合都是一样的。集合常用语删除重复的数据项。比如,x是一个字符串列表,在执行x=list(set(x))后,x中的每个字符串都将是独一无二的,存放顺序也是任意的。集合支持内置的len函数,也支持使用in与not in进行快速成员关系测试。
Python3基础语法之集合类型
Python3基础语法之集合类型
举例,从文件列表中删除makefile文件
Python3基础语法之集合类型
Python3基础语法之集合类型

集合内涵

除了调用set()创建集合,或使用集合字面值创建集合外,可以使用集合内涵创建集合。
Python3基础语法之集合类型
举例:html = {x for x in files if x.lower().endswitch((".htm",".html"))} 集合内涵中使用的iterable本身也可以是集合内涵(或任何其他类型的内核)

tem = set() for x in files if x.lower().endswith((".htm",".html")) tem.add(x) 

固定的frozenset类型

固定集合是指一旦创建旧不能改变的集合,固定集合只能使用frozenset数据类型函数进行创建,不带参数调用时,frozenset(0将返回一个空的固定集合,带一个frozenset参数时,将返回该参数的浅拷贝,对任何其他类型的参数,都尝试将给定的对象转换为一个frozenset。该函数只能接受一个参数。
Python3基础语法之集合类型
如果将二元运算符应用于集合与固定集合,那么产生结果的数据类型与左边操作数的数据类型一致。因此,如果f是一个固定集合,s是一个集合,那么f&s将产生一个固定集合,s&f则产生一个集合。在使用与!=等操作符时,操作数的顺序无关紧要,如果两个集合包含相同的项,那么fs结果为True。

本文地址:https://blog.csdn.net/asmartkiller/article/details/108237831

相关标签: Python 集合类型