python集合类型是一种具体的数据类型_Python3基础语法之集合类型

set也是一种组合数据类型,支持成员关系操作(in)、对象大小计算操作符(len()),并且是iterable。集合数据类型至少提供一个set.isdisjoin()方法,支持比较,也支持为逻辑操作(在集合用于联合、交叉等上下文中使用)。只有可哈希运算的对象可以添加到集合中,可哈希运算的对象包含一个__hash__()特殊方法,其返回值在某个对象的整个生命周期内都是相同的,并且可以使用__eq()__特殊方法进行相等性比较。

所有内置的固定数据类型(比如float、frozenset、int、str、tuple)都是可哈希运算的,都可以添加到集合中。内置的可变数据类型(比如dict、list、set)都不是可哈希运算的,因为其哈希值会随着包含项数的变化而变化。

操作符==与!=都是逐项比较(对嵌套项,比如集合内的元组或固定集合,则递归比较)其他比较操作符则进行子集比较火超集比较。

可变的set类型 {}

集合中的项是无序的,没有索引位置的概念,不能分片或按步距分片。set数据类型可以作为函数进行调用,不带参数进行调用时将返回一个空集合;带一个set参数时返回该参数的浅拷贝;对任意其他参数,则尝试将给定的对象转换为集合。空集合必须使用set()创建,而不能使用{}来创建。

set(“apple”)、set(“aple”)和{‘e’,‘p’,‘a’,‘l’}产生的三个集合都是一样的。集合常用语删除重复的数据项。比如,x是一个字符串列表,在执行x=list(set(x))后,x中的每个字符串都将是独一无二的,存放顺序也是任意的。集合支持内置的len函数,也支持使用in与not in进行快速成员关系测试。

举例,从文件列表中删除makefile文件

集合内涵

除了调用set()创建集合,或使用集合字面值创建集合外,可以使用集合内涵创建集合。

举例: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。该函数只能接受一个参数。

如果将二元运算符应用于集合与固定集合,那么产生结果的数据类型与左边操作数的数据类型一致。因此,如果f是一个固定集合,s是一个集合,那么f&s将产生一个固定集合,s&f则产生一个集合。在使用与!=等操作符时,操作数的顺序无关紧要,如果两个集合包含相同的项,那么fs结果为True。

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

希望与广大网友互动??

点此进行留言吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 安装之U盘引导

说到装系统最简单的方法无非就是找个系统安装光盘来然后就一步一步慢慢的安装。简单是简单但好似大多数人好像都木有Linux的安装光盘。因此只能用U盘来模拟光盘的功能来装系统咯。 电脑上装有Windows 7现要装Linux变双系统。 安装Linux前的准备: 1、电脑上分出空闲的…

OSGi:简介

为基于Java的系统创建的OSGi提供了模块化系统的框架。 OSGi使得可以定义每个单独模块与其他模块的依赖关系,并使用户可以控制生命周期并动态更改系统的每个组件。 OSGi是一个规范,最常见的实现可以算作Equinox , Apache Felix和Knoplerfish 。…

一起动手打造个人娱乐级linux

我们使用电脑,一直以来用的都是windows,但是对于像我这种爱折腾的人来说,尝试使用linux系统应该是一种不错的体验。说到linux,许多人可能都没听过,或者知道的人对它印象是这样的: 然而,linux发展…

PostgreSQL数据类型

http://blog.csdn.net/neo_liu0000/article/details/6254086 第六章 数据类型 6.1概述 PostgreSQL 提供了丰富的数据类型。用户可以使用 CREATE TYPE 命令在数据库中创建新的数据类型。PostgreSQL 的数据类型被分为四种,分别是基本数据类型、复合数据类型、域和伪类…

centos 卸载ffmpeg_CentOS Linux 操作系统安装 FFmpeg 教程

FFmpeg 是一个非常热门的开源项目,用来编解码音频视频流,被广泛用于各种流服务中。本教程在 CentOS 6、7、8 上面都可以使用,用来安装 FFmpeg 软件。一、安装前需求一个 sudo 账户,一般都是默认 root 账户即可。1、CentOS 8安装所…

Linux 火狐浏览器安装Flash插件

Linux系统安装完毕后,发现火狐浏览器视频播放不了而且总是提示安装Flash。而按火狐浏览器上的提示Flash插件安装总是失败,木有办法只能手动安装Flash插件啦。 到Flash官网:http://get.adobe.com/cn/flashplayer/ 下载系统对应的Flash插件&…

按汇总分组/多维数据集

时不时地,您会遇到一个使您达到SQL限制的要求。 我们中的许多人可能会提早放弃并使用Java / [或您的语言]计算内容。 相反,使用SQL可能是如此简单快捷。 如果您使用的是高级数据库,例如DB2 , Oracle , SQL Server &…

TCPUDP

TCP(传输控制协议) 建立连接,形成传输数据的通道在连接中进行大数据传输(数据大小不受限制)通过三次握手完成连接,是可靠协议,安全送达(三次握手向服务器发送请求,响应请求回复,发送…

Windows和linux双系统——修改默认启动顺序

电脑上装了Windows 7和Ubantu双系统,由于Linux系统用的次数比较少并且还是默认的启动项对此很不能容忍,因此得修改Windows为默认的启动项。 由于电脑上的系统引导程序是GRUB,因此修改当然也就落到Linux系统上啦。 修改/boot/grub/grub.cfg该文…

ft232h引脚_usb转串口芯片 ft232的奇怪现象

硬件平台:stm32f407ft232RL按照手册上的电路,我用USB接口给ft232RL供电,如下图:0288f358ccd0026690b2443b41d98f0f_224.png (0 Bytes, 下载次数: 12)2010-12-14 22:54 上传我在这个电路的基础上我用单片机串口和芯片对应的TX和RX相…

微软Team Foundation Service 的Scrum模板中的Feature和Backlog Items 的区别【转载】

Features help us plan work better in Team Foundation Service Scrum process 【原文:http://www.nsilverbullet.net/2013/06/04/features-help-us-plan-work-better-in-team-foundation-service-scrum-process/】 Recently a new work item type named “Featur…

LeWeb – 2011 –综述

在我去机场前几个小时,我将写最后一篇与LeWeb相关的文章。 这次,我将专注于会议本身。 参加过几次开发人员会议(虽然不多,但足以给您带来一定的经验),我已经开发了自己的自定义会议等级框架。 我使用以下6条…

Java 入门基础——面向对象的特征

计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协作的过程。面向对象编程就是按现实业务一样的方式将程序代码按一个个对象进行组织和编写,让计算机系统能够识别和理解用对象方式组织和编写的程序代码&#xf…

(总结)密码破解之王:Ophcrack彩虹表(Rainbow Tables)原理详解(附:120G彩虹表下载)...

http://www.ha97.com/4009.html转载于:https://www.cnblogs.com/chaizp/p/5111188.html

python游走代码_介绍一个全局最优化的方法:随机游走算法(Random Walk)

1. 关于全局最优化求解全局最优化是一个非常复杂的问题,目前还没有一个通用的办法可以对任意复杂函数求解全局最优值。上一篇文章讲解了一个求解局部极小值的方法——梯度下降法。这种方法对于求解精度不高的情况是实用的,可以用局部极小值近似替代全局最…

iOS单元测试

iOS单元测试异步测试需要建立预期,因为苹果的单元测试都是同步的,测试到异步的时候建立一个预期,预期如果在规定时间(自定义)完成,代表单元测试通过。 还有 猴子测试 ,就是去github上找到猴子测…

调试JVM

在某些(极少数)情况下,您可能会遇到使JVM本身崩溃的情况。 我最近通过将ThreadGroup的名称设置为null来进行管理 。 在这些情况下,调试JVM本身很有用,这样可以更精确地定位崩溃。 这是完成此操作的步骤(它们…

javaScript DOM编程常用的方法与属性

DOM是Document Object Model文档对象模型的缩写。根据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。 Node接口的特性和方法 特性/方法类型/放回类型说明nodeName String 节点的名字;根…

一:验证微信的Token

前言:申请到微信公众号的同学,可能会挺感兴趣的,毕竟微信公众号,确实是一个好东西,它提供了一个很好的平台,而且它自带有一套管理模板,对于微信公众号可以很好的管理。 但是也仅仅是很好的管理,…

三、 将DataTable 转换为List

1. 方法public static IList<T> ConvertTo<T>(DataTable table) { if (table null) { return null; } List<DataRow> rows new List<DataRow>(); foreach (DataRow row in table.Rows) { rows.Add(row); } return ConvertTo<T>(rows); }2. 调用…