python-13-集合增删查
前言
集合:可变的数据类型,但元素必须是不可变的数据类型,无序不重复,既可哈希。所以python的集合是不能进行修改的,只有增删查。
可哈希、不可变数据类型有:元组、bool、int、str
一、增
1、add,因为是无序的,每次打印看到的新增都是随机位置
# 1、add,无序的,随机
set1 = {'tian', '小龙'}
set1.add('long')
print(set1)

2、update,按照元素新增
# 2、update
set1 = {'tian', '小龙'}
set1.update('ab')
print(set1)

二、删除
1、pop()删除
# 1、pop()删除
set1 = {'tian', '小龙', 'xiao'}
print(set1.pop()) # 随机删除,有返回值
print(set1)

2、remove 按元素删除
# 2、remove 按元素删除
set1 = {'tian', '小龙', 'xiao'}
set1.remove('tian')
print(set1)

3、clear 清空
# 3、清空
set1 = {'tian', '小龙', 'xiao'}
set1.clear()
print(set1)

4、del 删除,没有返回值
# 4、del 删除,没有返回值
set1 = {'tian', '小龙', 'xiao'}
del set1

三、查
1、交集、并集、反交集、差集,可bool、int、str
set1 = {4, 5, 6, 7, 8}
set2 = {12, 1, 5, 7, 9}
print(set1 & set2) # 交集
print(set1 | set2) # 并集,去重
print(set1 ^ set2) # 反交集
print(set1 - set2) # 差集

2、子集、超集,返回:bool
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
print(set1 < set2) # 子集,set1 是 set2的子集
print(set2 > set1) # 超集,set2 是 set1的超集

3、有个需求将列表的数据去重,不改变原来的类型。(PS:1.二次转换;2.frozenset)
① 列表转换为集合,集合再转回列表
li = [1,2,33,33,2,1,4,5,6,'a','a']
# # 将列表转换为集合,集合再转回列表即可
s = set(li)
print(list(s))

② frozenset
li = []
s = frozenset([1,2,33,33,2,1,4,5,6,'a','a'])
print(s, type(s))
for i in s:
li.append(i)
print(li)

你更喜欢哪种呢?欢迎来QQ交流群:482713805
python-13-集合增删查的更多相关文章
- day02 Python列表的增删查改及常用操作
列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = [‘alex’,12 ...
- python操作mysql增删查改
# coding=utf-8 ''' python操作mysql,需安装MySQLdb驱动 安装MySQLdb,请访问 http://sourceforge.net/projects/mysql-py ...
- 2016/3/13 MySQL 增删查改 CRUD 用代码实现
用代码实现数据库数据输入 T-SQL语句 查询语句分几块 ①创建表 create table Car (Code varchar(50) primary key, #primary key 主键 定义 ...
- python下sqlite增删查改方法(转)
sqlite读写 #coding=utf-8 import sqlite3 import os #创建数据库和游标 if os.path.exists(' test.db'): conn=sqli ...
- python列表的增删查改
添加新的元素 append() insert() extend() +号 删除元素 pop() remove() del xxx[index] 修改 xxx[index] = value 查找 in. ...
- Python对MySQL进行增删查改
python连接MySQL数据库:pymysql # 测试操作 import pymysql # 打开数据库 db = pymysql.connect("localhost", & ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- 使用EntityFramework6完成增删查改和事务
使用EntityFramework6完成增删查改和事务 上一节我们已经学习了如何使用EF连接数据库,并简单演示了一下如何使用EF6对数据库进行操作,这一节我来详细讲解一下. 使用EF对数据库进行操作, ...
- MongoDB数据库(二):增删查改
MongoDB数据库的增删查改 1.插入数据 语法: db.集合名称.insert(document) db.table_name.insert({name:'gj',gender:1}) db.ta ...
- 使用EntityFramework6完成增删查改CRUD和事务
使用EntityFramework6完成增删查改和事务 上一节我们已经学习了如何使用EF连接MySQL数据库,并简单演示了一下如何使用EF6对数据库进行操作,这一节我来详细讲解一下. 使用EF对数据库 ...
随机推荐
- s3c2440裸机-代码重定位(1.重定位的引入,为什么要代码重定位)
1.重定位的引入(为什么要代码重定位) 我们知道s3c2440的cpu从0地址开始取指令执行,当从nor启动时,0地址对应nor,nor可以像内存一样读,但不能像内存一样写.我们能够从nor上取指令执 ...
- 安装CentOS 6.x报错"Disk sda contains BIOS RAID metadata"解决方法
今天在安装CentOS 6.2的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of a ...
- vue.set( target, key, value ) this.$set(对象获数组,要更改的具体数据,重新赋值)用法
调用方法:Vue.set( target, key, value ) target:要更改的数据源(可以是对象或者数组) key:要更改的具体数据 value :重新赋的值 具体用法js代码: //设 ...
- Map随笔:有序的HashMap——LinkedHashMap
目录 Map随笔:有序的HashMap--LinkedHashMap 一,概述 二,源码结构 三,总结 Map随笔:有序的HashMap--LinkedHashMap 一,概述 LinkedHas ...
- 【linux命令】chgrp改变文件或目录的属组
在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理.可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以.Chgrp命令就是change group的 ...
- 真正的RISC-V开发板——VEGA织女星开发板开箱评测
前言 由于最近ARM公司要求员工"停止所有与华为及其子公司正在生效的合约.支持及未决约定",即暂停与华为的相关合作,大家纷纷把注意力投向了另一个的处理器架构RISC-V,它是基于精 ...
- css实现左右两个div等高
提出问题: 现在有两个div,但是两个div里面内容多少不确定,可能左边多,可能右边多,css要如何设置可以保证左右两边的div等高呢? 解决方案: 每个div使用display:table-cell ...
- 你看不懂的spring原理是因为不知道这几个概念
背景 问题从一杯咖啡开始. 今天我去楼下咖啡机买了一杯「粉黛拿铁」.制作过程中显示: 我取了做好的粉黛拿铁,喝了一口,果然就是一杯热巧克力.咦咦咦,说好的拿铁呢?虽然我对「零点吧」的咖啡评价很高,觉得 ...
- 如何搭建node - express 项目
基于博主也是个菜鸟,亲身体验后步骤如下: 首先,我们需要安装node.js, https://www.runoob.com/nodejs/nodejs-install-setup.html 安装完成 ...
- PHP学习—了解篇2
使用PHP 表单 表单处理: PHP超全局变量:$_GET 和 $ _POST 用于处理表单数据(form-data) < form > 表单标签 action属性:规定表单数据提交U ...