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对数据库 ...
随机推荐
- @supports特性查询
特性查询也就是@supports规则,这个属性是作为CSS2.0扩展被引入的,是检测浏览器是否支持css属性值,是由逻辑与,逻辑或和逻辑非组合而成.主要的目的就是为了作者能够在不同的浏览器上根据不同的 ...
- ORA-16032和ORA-07286 LOG_ARCHIVE_DEST_1没生效
主备切换在备库startup时出现归档路径没写到spfile里...注意:修改参数时最好带上scope=spfile或scope=both,以免重启出现异常.SQL> startup mount ...
- screen工具的安装与使用
yum install screen 安装screen screen -S <作业名称> 创建新的页 screen -ls 查询已经存在的页面 screen -r < ...
- 高阶组件&&高阶函数(一)
antd里面的form表单方面,遇到一个高阶函数,以及高阶组件,于是看了一下这方面内容,前辈们的文章写得也非常详细,这里就稍微kobe一下 高阶函数与高阶组件 高阶函数: 高阶函数,是一种特别的函数, ...
- Linux下动态切换EHCI控制器下端口的速率(即切换为12M)
在sys目录下找到对应的控制器 例如:/sys/devices/platform/soc/ehci,直接操作该目录下的companion echo 1 > companion 将port1设 ...
- RN调试坑点总结(不定期更新)
前言 我感觉,如果模拟器是个人的话,我已经想打死他了 大家不要催我学flutter啦,哈哈哈,学了后跟大家分享下 RN报错的终极解决办法 众所周知,RN经常遇到无可奈何的超级Bug, 那么对于这些问题 ...
- [译]OpenSSL Cookbook
记录个人学习过程吧,顺便翻译一下.另外,本文并不会包括原连接中的所有内容,仅包括个人在工作中会经常遇到的. 参考:OpenSSL Cookbook 前言 由于协议特性和实现的复杂性,有时很难确定安全服 ...
- eclipse的一些常用快捷键
掌握了eclipse快捷键功能,能够大大提高开发效率. 这里总结一些eclipse的常用快捷键. 编辑相关快捷键 1. [ALT+/]:此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不 ...
- Nginx配置Tomcat8反向代理出现 java.lang.IllegalArgumentException: The character [_] is never valid in a domain name.
在配置Nginx的反向代理,访问反向代理的路径而出现了异常 java.lang.IllegalArgumentException: The character [_] is never valid i ...
- C# 使用GDI绘制雷达图
最近项目要用C#实现画一个雷达图,搜了搜网上竟然找不到C#画雷达图的解决方案,那么自己实现一个吧 实现效果如下图: 代码如下: public static class RadarDemo { ; ; ...