Python的set集合
set集合也用{}表示,set中的元素是不重复的、无序的,且它里面的元素必须是可hash的(int,str,tuple,bool),set是可变的。
1.使用set去重
m = [1, '苹果', '', '苹果', 3, 1, '']
s = list(set(m))
print(s) ['苹果', 1, '3', 3]
2.set集合增删查改
1)增 使用add
s = {'成龙', '李小龙', '甄子丹', '李连杰'}
s.add('周星驰')
print(s) {'周星驰', '李连杰', '甄子丹', '李小龙', '成龙'}
使用update ps:迭代添加
s = {'成龙', '李小龙', '甄子丹', '李连杰'}
s.update('周星驰')
print(s) {'甄子丹', '驰', '李连杰', '周', '成龙', '星', '李小龙'}
2)删 使用pop()随机删除一个
s = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s.pop()
print(s) {'甄子丹', '驰', '李连杰', '周', '成龙', '星', '李小龙'}
使用remove()直接删除元素
s = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s.remove('甄子丹')
print(s) {'周星驰', '李连杰', '李小龙', '成龙'}
使用clear()清空集合
s = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s.clear()
print(s) set()
3)修改
set集合中的数据没有索引,也没办法去定位一个元素,所以没办法直接修改,可以采用先删除后添加的方式来完成修改操作。
4)set集合是一个可迭代对象,可以进行for循环。
3.常用操作
1)交集 &
s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
print(s1 & s2)
4 print(s1.intersection(s2)) {'甄子丹', '周星驰'}
2)并集 |
s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
print(s1 | s2)
4 print(s1.union(s2)) {'李连杰', '李小龙', '周星驰', '赵本山', '成龙', '潘长江', '甄子丹'}
3)差集 -
s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
print(s1 - s2)
print(s1.difference(s2)) {'李小龙', '李连杰', '成龙'}
4)反交集 ^
s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
print(s1 ^ s2)
print(s1.symmetric_difference(s2)) {'李连杰', '成龙', '李小龙', '赵本山', '潘长江'}
5)子集
s1 = {'甄子丹', '周星驰'}
s2 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
print(s1 < s2)
print(s1.issubset(s2)) Ture
6)超集
s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s2 = {'甄子丹', '周星驰'}
print(s1 > s2)
print(s1.issuperset(s2)) Ture
4.frozenset
可用frozenset定义一个不可变的集合。
Python的set集合的更多相关文章
- python爬虫工具集合
python爬虫工具集合 大家一起来整理吧!强烈建议PR.这是初稿,总是有很多问题,而且考虑不全面,希望大家支持! 源文件 主要针对python3 常用库 urllib Urllib是python提供 ...
- Python序列结构--集合
集合:元素之间不允许重复 集合属于Python无序可变序列,元素之间不允许重复 集合对象的创建与删除 直接将值赋值给变量即可创建一个集合 >>> a = {3,5}>>& ...
- python 中的集合set
python中,集合(set)是一个无序排列,可哈希, 支持集合关系测试,不支持索引和切片操作,没有特定语法格式, 只能通过工厂函数创建.集合里不会出现两个相同的元素, 所以集合常用来对字符串或元组或 ...
- 【转】Python数据类型之“集合(Sets)与映射(Mapping)”
[转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...
- Python的set集合详解
Python 还包含了一个数据类型 -- set (集合).集合是一个无序不重复元素的集.基本功能包括关系测试和消除重复元素.集合对象还支持 union(联合),intersection(交),dif ...
- python入门13 集合set
set集合与数学中的集合同一个概念,是无序不重复元素组成的. #coding:utf-8 #/usr/bin/python """ 2018-11-10 dinghanh ...
- Python中的集合类型分类和集合类型操作符解析
集合类型 数学上,把set称作由不同的元素组成的集合,集合(set)的成员通常被称作集合元素(set elements). Python把这个概念引入到它的集合类型对象里.集合对象是一组无 ...
- Python列表、集合与字典(3)
目录 一.列表 二.集合 三.字典 一.列表 1. 列表初识 列表的使用为处理特定顺序排列的数据提供了便利,列表元素可以是字母.数字或者其他信息,同时所加元素之间不存在任何关系. 在Pytho ...
- python学习之【第七篇】:Python中的集合及其所具有的方法
1.前言 python中的集合set与列表类似,它们最大的区别是集合内不允许出现重复元素,如果在定义时包含重复元素,会自动去重. 集合是无序的,集合中的元素必须是不可变类型.集合可以作为字典的key. ...
- python常用模块集合
python常用模块集合 Python自定义模块 python collections模块/系列 Python 常用模块-json/pickle序列化/反序列化 python 常用模块os系统接口 p ...
随机推荐
- targetcli配置iSCSI
概述:这篇文章来介绍LIO下的用户态工具targetcli来配置iSCSI服务 虚拟机环境:centos7.x(内核版本3.10.0-862.el7.x86_64) IP分别为192.168.1.20 ...
- html页面调用js文件里的函数报错-->方法名 is not defined处理方法
前几天写了一个时间函数setInterval,然后出现了这个错误:Uncaught ReferenceError: dosave is not defined(…) 找了半天都没发现错在哪,最后找到解 ...
- SQL-61 对于employees表中,给出奇数行的first_name
题目描述 对于employees表中,给出奇数行的first_nameCREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` ...
- box-sizing的用法
默认情况下设置盒子的width是指内容区域,所以在设置边框会使得盒子往外扩张,如果要让css设置的width就是盒子最终的宽度,那么就要设置box-sizing:border-box, ...
- React Native 调用 Web3(1.x) 的正确姿势
1 创建项目 react-native init lm1 cd lm1 2 安装依赖包 yarn add node-libs-browser 3 创建 rn-cli.config.js 脚本 cons ...
- 编写简单的windows桌面计算器程序
编译环境:VS2017 主文件为: #include "stdafx.h" #include "WindowsProject5.h" #include &quo ...
- MySQL8.0 关闭二进制日志
Binary logging is enabled by default (the log_bin system variable is set to ON). The exception is if ...
- docker lamp
可以直接使用官方镜像搭建LAMP环境从官方下载PHP+Apache镜像和MySQL两个镜像来组成(如:php:7.2.3-apache-stretch和mysql:5.7.21)docker pull ...
- 数学:确定性的丧失 (M·克莱因 著)
第一章 数学真理的起源 (已看) 第二章 数学真理的繁荣 (已看) 第三章 科学的数学化 (已看) 第四章 第一场灾难:真理的丧失 (已看) 第五章 一门逻辑科学不合逻辑的发展 (已看) 第六章 分析 ...
- 3.2 MathType插入竖省略号
法1:鼠标单击位于上方菜单栏下面的空格和椭圆模版,然后在下拉模版下选择垂直省略号,如下图所示. 按照上面的操作选择垂直省略号模版后,这样在下面的编辑区域就会打出该符号了. 法2:在插入符号下查找 如果 ...