python中集合运算_Python中的集合操作与集合运算

Python中的集合是一种无序的,无重复值的数据结构类型。Python中的集合可以用来检测元素检测或消除重复的元素。

一、python 集合概述

(1)Python中的集合元素是无序的,即元素没有顺序问题,也不能像数组、列表、字符串那样使用索引来访问某个元素;

(2)各元素的顺序也并不是定义时的顺序;

(3)Python中集合的每个元素都是不同的,即使你定义了相同的元素,其在使用时也会自动消除,利用集合这一特点可以去除重复值;

(4)Python中的集合使用{}或set()来定义;

(5)如果定义一个空集只能使用set()来定义,不能使用{}定义,原因是{}用于定义词典的空值;

(6)集合是值可变类型,所以可以对其元素值进行增,删操作;

二、定义集合

Python中可以使用一对英文半角的花括号来定义一个集合,各元素的值使用英文半角的逗号进行分隔;也可以使用其内置函数set()来定义一个集合。下面是定义集合的几个例子:

>>>

set1 = {1, 2, 5, 3}

>>>

print(set1) # 注意输出顺序

{1, 2, 3, 5}

>>>

set2 = {1, 3, 'A', 'Python'} # 集合元素可以是不同类型

>>>

print(set2)

{1, 2, 'Python', 'A'}

>>>

set3 = {1, 4, 1, 5} # 有重复值现象

>>>

print(set3) # 注意输出情况

{1, 4, 5}

>>>

set4 = set() # 定义一个空集

>>>

print(set4)

set()>>>

set5 = set(['python', 'R', 'Java'])

>>>

print(set5)

{'R', 'python', 'Java'}

>>>

set6 = set("ABE")

>>>

print(set6)

{'E', 'B', 'A'}

>>>

三、集合元素的访问

由于集合是无序且无索引的,不能像列表、数组等那样使用索引来访问它的元素,但是我们可以使用 for 循环来迭代访问其元素或通过 in 运算符判断集合中是否存在某个元素。

colors = {'Red', 'Yellow', 'White', 'Blue', 'Green'}

for

cl

in

colors:

print(cl, end = ' ')

print('\n')

print('Pink'

in

colors)

print('Blue'

in

colors)

print('White'

in

colors)

输出结果:

White Green Yellow Blue Red

False

True

True

四、修改集合

1、新增元素

我们可以使用add()函数为集合添加一个元素,也可以使用update()函数向集合中添加多个元素。

fruits = {"apple", "pear", "cherry"}

print("原集合:", fruits)

fruits.add("lemon") # add 方法每次只能添加一个元素

print("增加1个后:", fruits)

fruits.update(["lichee", "blueberry", "banana"]) # 此处可以是列表或一个集合形式

print("增加多个后:", fruits)

输出结果:

原集合: {'cherry', 'pear', 'apple'}

增加1个后: {'lemon', 'cherry', 'pear', 'apple'}

增加多个后: {'cherry', 'banana', 'pear', 'apple', 'blueberry', 'lemon', 'lichee'}2、从集合中移除元素

我们可以使用 remove()函数、discard()函数、clear()函数、pop()函数来删除集合中的元素,也可以使用del命令删除集合的定义。

fruits = {"apple", "cherry", "lemon", "pear", "lichee"}

print(fruits)

fruits.remove("pear") # 使用remove从集合中移除特定元素

print(fruits) # {'lemon', 'apple', 'lichee', 'cherry'}

fruits.discard("apple") # 使用discard从集合中删除特定元素

print(fruits) # {'lemon', 'lichee', 'cherry'}

fruits.pop() # 从集合中移除最顶端的元素

print(fruits) # {'lichee', 'cherry'}

fruits.clear() # 清空集合中的所有元素

print(fruits)

del

fruits # 删除fruits的定义

print(fruits) # 将会引发NameError错误

输出结果:

{'lemon', 'apple', 'lichee', 'cherry', 'pear'}

{'lemon', 'apple', 'lichee', 'cherry'}

{'lemon', 'lichee', 'cherry'}

{'lichee', 'cherry'}

set()

Traceback (most recent call last):

File "D:/python/PyTrain/testcode/sets.py", line 29, in

print(fruits)

NameError: name 'fruits' is not defined

Python没有提供直接修改特定值的操作,这也是由于集合无序且无索引造成的,但是我们可以使用其他方法来达到这样的目的,比如先删除后增加等,本站将在以后专门写文章来说明具体的操作技巧。

五、集合运算符

Python提供了简单方便的运算符可以实现集合的并、交、差和对称差的运算。

1、集合的并运算

使用 | 运算符可以实现两个集合的并运算。集合A和集合B并运算的结果中的元素是由或者属于集合A或者属于集合B的元素构成的,简单说把集合A中的元素和集合B中的元素放在一起,然后去除重复的就是并运算的结果。

A = {1, 3, 7}

B = {4, 6, 7, 8}

R = A | B

print("A | B=", R)

输出结果:

A | B= {1, 3, 4, 6, 7, 8}2、集合的交运算

集合A与集合B的交运算的结果是由既属于集合A又属于集合B的元素构成的。就是两个集合的公共元素。在Python中使用 & 运算符可以求两个集合的并运算。

A = {1, 3, 7}

B = {4, 6, 7, 8}

R = A & B

print("A & B=", R)

输出结果:

A & B= {7}

3、集合的差运算

集合A与集合B的差运算结果是由属于集合A而不属于集合B的元素构成的。就是A中有而B中没有的元素。在Python中可以使用 - 来进行集合的差运算。

A = {1, 3, 7}

B = {4, 6, 7, 8}

R = A - B

print("A - B=", R)

运算结果:

A - B= {1, 3}4、集合的对称差运算

集合A与集合B的对称差运算结果是由属于集合A或属于集合B但不能是共同拥有的元素构成的。即A和B的并集去除交集后的结果。在Python中使用 ^ 运算符可以求两个集合的对称差集。

A = {1, 3, 7}

B = {4, 6, 7, 8}

R = A ^ B

print("A ^ B=", R)

输出结果:

A ^ B= {1, 3, 4, 6, 8}Python也提供了相关的函数可以实现以上各种运算,关于集合的相关函数的使用方法,本站将在以后陆续进行介绍。

关于集合的内容暂时就介绍这么多,如果内容有误,请留言评论。

202071123225313930.png

如需转载,请注明出处和本文链接地址:翔宇亭IT乐园(http://www.biye5u.com)

本文链接地址:http://www.biye5u.com/article/python/2020/6479.html

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

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

相关文章

Asp.net 定时任务

1.定时器 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; using System.Text; using System.Web.Security; using System.Web.SessionState; using System.Timers;namespace WebApplication1 {public class Global :…

python程序怎么修改_python文件如何修改

以占用内存的方式修改文件 待修改的文件 word1.txt,文件内容如下:现在要将文中的“汪淼”修改为“WM”,代码如下:#!-*-coding:utf-8-*- old_str 汪淼 new_str WM f1 open(word1.txt,r,encoding"utf-8") #…

mysql 计算近30天总金额_mysql┃一条更新语句是怎么执行的???

本文共:3018字 预计阅读时间:8分钟文章首发于我的微信公众号:哪儿来的moon,欢迎大家关注mysql┃一条更新语句是怎么执行的???前言 通过上一篇文章的内容,大家已经对mysql的基本架构有…

arduinowifi.send怎么获取响应_ChatterBot代码解读-获取对话

这个过程比较复制,安装处理的流程,依次进行代码解读。在定义一个ChatBot后,可以进行对话的训练,这个过程参考:水中的鱼:ChatterBot代码解读-训练数据​zhuanlan.zhihu.com然后就是用如下的代码&…

beautifulsoup网页爬虫解析_Python爬虫神器:PyQuery,解析网页更简单,小白也能学会

图/文:迷神我们做python爬虫,通过requests抓取到内容就需要正则匹配,或者其他解析库解析内容。很多可能和我一样的人,都使用jquery的,那用的还是非常爽的。而pyquery库就是jQuery的Python实现,能够以jQuery…

unityios开发--加载视频以及加载完成之后自动跳转 .

在做游戏或者是虚拟漫游一般都会用到在开始的时候加载一段视频,这个视频可能一个介绍整个游戏或者是整个项目的。在加载完了之后自动的跳转到主画面或一个场景,在前在网上百度了一下找到的大部分都是win的好不容易找到了ios的。 Unity3D中播放游戏视频的…

rnn神经网络模型_一文读懂序列建模(deeplearning.ai)之循环神经网络(RNNs)

作者:Pulkit Sharma,2019年1月21日翻译:陈之炎校对:丁楠雅本文为你详细介绍序列模型,并分析其在不同的真实场景中的应用。简介如何预测一个序列中接下来要发生什么事情是一个非常吸引人的课题,这是我对数据…

am335x uart5配置

任务:配置uart5

ubuntu下制作u盘镜像_deepin下制作win10启动U盘

1.准备①下载multibootusb:http://multibootusb.org/page_download/ ②准备一个win10的镜像文件 ③准备一个U盘,最好先备份U盘数据再格式化一道2.打开multibootusb工具输入开机密码,点击认证3.multibootusb操作部分①选择U盘的第一个分区 ②安…

centos7 安装git_Centos7.4 Yapi 服务搭建

Centos Yapi服务搭建转载请标明原文出处参考以下网址,排名不分先后https://github.com/YMFE/yapihttps://blog.csdn.net/guangzhou007_java/article/details/90779222https://www.jianshu.com/p/994bc7b19b26我的服务器环境阿里云服务器 centos 7.4使用 https://one…

python中execute函数_Python中的函数定义与参数使用

本节知识点:(1)函数定义格式;(2)五种参数使用函数定义 基本语法格式def function_name( parameter_list ): return values函数通常为小写英语单词及其组合,以下划线隔开,例如:sum、mean、cost_calculat…

内存spd规范_C语言内存泄露很严重,如何应对?

原文:https://blog.csdn.net/devcloud/article/details/1083359121.前言 最近部门不同产品接连出现内存泄漏导致的网上问题,具体表现为单板在现网运行数月以后,因为内存耗尽而导致单板复位现象。一方面,内存泄漏问题属于低级错误&…

接口测试的持续集成的工具(git代码管理工具,jenkins持续集成)

持续集成的概念:大白话就是持续的做一件事情,使其使用起来更加流畅;结合测试来讲就是说用工具管理好代码的同时,使代码运行的更加自动以及智能;提升测试效率。 ⽹址:https://git-scm.com/downloads 长这个…

Java学习笔记—UDP通信

一、UDP通信原理 UDP协议(用户数据报协议 User Datagram Protocol)是一种无连接通信协议, 即在数据传输时数据发送端和接收端不建立逻辑链接。因此UDP协议是一种 不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个 Socket只是…

qt调用import sys库_Python模块之 sys 模块

引入1.什么是 sys 模块sys 模块是与 Python 解释器交互的一个接口该模块提供对解释器使用或维护的一些变量的访问和获取它提供了许多函数和变量来处理 Python 运行时环境的不同部分一.常见用法介绍1.sys.argv实现从程序的外部向程序传递参数返回的是一个列表, 第一个元素是程序…

A20 lvds

LVDS0: 数据线 LVDS0-VP0 LVDS0-VN0 LVDS0-VP1 LVDS0-VN1 LVDS0-VP2 LVDS0-VN2 时钟线 LVDS0-VPC LVDS0-VNC 电源线 插座的1,2,3接电源,最终连到 LCD-PWR 背光 另外背光单独在另一个插座上,LVDS0和LVDS1是一致的。 4…

顺丰快递单号的规律_顺丰快递顺丰快递查询单号查询

查询快递前:请先点击上面蓝字” 顺风快递快件单号查询“关注,关注后即可免费查询快递!顺丰快递 顺丰快递查询 顺丰快递单号查询记下货物的订单号码。打开顺丰快递的官方网站。快件追踪中写入要查询的订单号码。输入订单号、验证码…

Java学习笔记—TCP通信

一、TCP通信原理 TCP(Transmission Control Protocol)协议是面向链接的通信协议,即数据传输之前,先在发送端和接收端建立逻辑链接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。TCP通信中必须明确客户端和服务器端…

Python 网页编程- Pyramid 安装测试

http://docs.pylonsproject.org/projects/pyramid/en/1.4-branch/narr/install.html 是我在csdn的博客:http://blog.csdn.net/spaceship20008/article/details/8767884 放在cnblogs做备份 按照介绍操作。 我用的是mint13, python 3.2.3版本。 使用的是virtualenv 开…

excel 2007 vba与宏完全剖析_Excel怎么保护自己的劳动成果?强制用户启用宏,再加上这一步...

知识改变命运,科技成就未来。当Excel工作簿中含有VBA代码时,用户在使用时需要启用宏,否则工作簿的某些功能就会失效。或者是编辑的VBA代码含有定期删除指令,为了保证工作簿的安全性,和防止他人禁用宏造成知识产权法受到…