集合set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以在set中没有重复的key。

集合中的元素要求是不可变的并且还是唯一的,我们就利用它是唯一来做去重

set可以看成数学意义上的无序无重复的集合,因此,两个set可以做数学意义上的交集、并集等操作。

一、集合特点-去重

lst=[1,2,3,2,3,4,2,5,6,2]  #定义列表lst
print(lst) #输出列表
print(set(lst)) #lst转化为集合输出(去重)
print(list(set(lst))) #去重后的集合转化为列表输出
结果:
[1, 2, 3, 2, 3, 4, 2, 5, 6, 2]
{1, 2, 3, 4, 5, 6}
[1, 2, 3, 4, 5, 6]

二、集合的基本操作-交集

交集、并集、差集、反交集、子集、超集

set={1,2,3}              #定义集合set
set1={2,3,4} #定义集合set1
set2=set | set1 #并集-合并集合
set3=set-set1 #差集-set中的单独元素
set4=set ^ set1 #反交集-两个集合中的单独元素
set5=set < set1 #set是set1的子集吗?输出布尔值
set6=set > set1 #set是set1的超集吗?输出布尔值
print(set & set1) #交集-两个集合中的共有元素
print(set2)
print(set3)
print(set4)
print(set5)
print(set6)
结果:
{2, 3}
{1, 2, 3, 4}
{1}
{1, 4}
False
False

三、集合的增删改查

1.增加

s = {"罗志祥", '文章', "周星驰"}
s.add("何炅")
print(s)
s.add("何炅") # 重复的内容不会被添加到set集合中
print(s)
s1 = {"刘德华", '张学友', "张柏芝"}
s1.update("陈冠希") # 迭代更新
print(s1)
s1.update(["唐韵", "林逸","林逸"])
print(s1) 结果: {'周星驰', '罗志祥', '何炅', '文章'}
{'周星驰', '罗志祥', '何炅', '文章'}
{'张柏芝', '刘德华', '冠', '张学友', '陈', '希'}
{'张柏芝', '刘德华', '冠', '林逸', '张学友', '陈', '希', '唐韵'}

2.删除

随机删除、指定元素删除、清空集合

s = {"周星驰", '周星星', "周瑞发","张学友", "杨虎城"}
item = s.pop() # 随机弹出⼀个.
print(s)
print(item)
s.remove("周星星") # 直接删除元素
# s.remove("刘亦菲") # 不存在这个元素. 删除会报错
print(s)
s.clear() # 清空set集合.需要注意的是set集合如果是空的. 打印出来是set() 因为要和dict区分的.
print(s) # set() 结果: {'周星星', '张学友', '周瑞发', '杨虎城'}
周星驰
{'张学友', '周瑞发', '杨虎城'}
set()

3.修改

set集合中的数据没有索引. 也没有办法去定位⼀个元素. 所以没有办法进⾏直接修改.

我们可以采⽤先删除后添加的⽅式来完成修改操作

s = {'阿斯顿','阿瑟东','阿三的'}
s.remove('阿三的')
s.add('周星星')
print(s) 结果:
{'周星星', '阿瑟东', '阿斯顿'}

4.查询

# set是⼀个可迭代对象. 所以可以进⾏for循环

s = {'阿斯顿','阿瑟东','阿三的'}
for i in s:
print(i) 结果:
阿斯顿
阿瑟东
阿三的

四、frozenset函数

描述

frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

语法

frozenset() 函数语法:

class frozenset([iterable])

参数

  • iterable -- 可迭代的对象,比如列表、字典、元组等等。

返回值

返回新的 frozenset 对象,如果不提供任何参数,默认会生成空集合。

实例

以下实例展示了 frozenset() 的使用方法:

a=frozenset(range(10))                #生成一个新的不可变集合
print(a)
b=frozenset('runoob') #创建不可变集合
print(b)
c=frozenset(['终止','啊实打实','阿萨']) #通过frozenset把集合变得可哈希(把不可变集合作为字典的key)
print(c)
dic={c:'123'}
print(dic) 结果:
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
frozenset({'r', 'b', 'u', 'o', 'n'})
frozenset({'终止', '啊实打实', '阿萨'})
{frozenset({'终止', '啊实打实', '阿萨'}): '123'}

9.集合set和frozenset冻结集合函数的更多相关文章

  1. frozenset冻结集合函数

    1.描述 frozenset()返回一个冻结的集合,冻结后不能添加.删除和修改. set()无序且不重复,是可以变的,有add.remove.扩展:删除重复数据,还可以计算交集.差集.并集等 2.函数 ...

  2. Python基础(三)——集合、有序 无序列表、函数、文件操作

    1.Set集合 class set(object): """ set() -> new empty set object set(iterable) -> n ...

  3. 深浅拷贝 集合(定义,方法) 函数(定义,参数,return,作用域) 初识

    深浅拷贝 在python中浅拷贝 a=[1,2,3,4,]b=a.copy()b[0]='3333'print(a) #[1, 2, 3, 4] 浅拷贝一层并不会对a造成变化print(b) #[33 ...

  4. Py集合,字符串的格式化,函数,便利

    可变与不可变 不可变指的是:重新赋值时,内存中的id值会变得 其中有:字符串,数字,元组 name="sb" v=id(name) print(v) name ="ale ...

  5. scala的多种集合的使用(2)之集合常用方法

    一.常用的集合方法 1.可遍历集合的常用方法 下表列出了Traverable在所有集合常用的方法.接下来的符号: c代表一个集合 f代表一个函数 p代表一个谓词 n代表一个数字 op代表一个简单的操作 ...

  6. 【JAVA集合框架一 】java集合框架官方介绍 Collections Framework Overview 集合框架总览 翻译 javase8 集合官方文档中文版

    原文链接: https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html 原文内容也一并附加在本文最 ...

  7. [Java核心技术]第九章-集合(Java集合框架、具体的集合、映射)

    9.1Java集合框架 一些有的没的 可以使用接口类型存放集合的引用.一旦改变了想法,只需要在调用构造函数的地方做一处修改. add方法用于向集合添加元素,如果添加元素确实改变了集合就返回true. ...

  8. 背水一战 Windows 10 (22) - 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合

    [源码下载] 背水一战 Windows 10 (22) - 绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合 作 ...

  9. 【ASP.NET实战教程】ASP.NET实战教程大集合,各种项目实战集合

    [ASP.NET实战教程]ASP.NET实战教程大集合,各种项目实战集合,希望大家可以好好学习教程中,有的比较老了,但是一直很经典!!!!论坛中很多小伙伴说.net没有实战教程学习,所以小编连夜搜集整 ...

随机推荐

  1. STM32之旅1——LED

    STM32之旅1--LED 学习了51单片机后,就要接触到更高级一点的单片机了,比如STM32,ST也有很多款单片机,现在用比较基础的学习--STM32F103RCT6. LED驱动 hal库的使用比 ...

  2. RHSA-2017:1842-重要: 内核 安全和BUG修复更新(需要重启、存在EXP、本地提权、代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  3. 如何部署MongoDB并开启远程访问Docker版

    Docker安装 安装方法 pull最新版本mongo docker pull mongo 运行 --name设置名称 -v挂载数据 -p端口映射 -d后台运行 mkdir ~/mongo #随便啦自 ...

  4. 制作iconfont放到自己的公共组件库

    我们公司的icon是UI提供svg,我们转成iconfont. 这里就不详细说明怎么制作svg,可以上网搜一下,https://www.iconfont.cn/help/detail?spm=a313 ...

  5. idea如何新建一个springmvc 工程

    java 版本 1.8.0_261 idea 版本2020.1 Tomcat 9  maven 3.6 新建工程 File->new->project 默认会下载springframewo ...

  6. MySQL - 常用三种数据库存储引擎

    数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以获得特 ...

  7. 安装clion

    转战c语言,首先搞定编辑器,之前用的pycharm所以就直接用clion了,但是装完不能直接用参考 https://www.cnblogs.com/lyc94620/p/9581786.html 所以 ...

  8. mac安装go环境

    下载pkg文件 https://golang.google.cn/dl/   sudo vim /etc/profile export GOROOT=/usr/local/go export GOPA ...

  9. 第十九章 DHCP原理介绍

    一.为什么使用DHCP 1.手动为局域网中大量主机配置IP地址.掩码.网关等参数的工作繁琐,容易出错 2.DHCP可以自动为局域网中主机完成TCP/IP协议配置 3.DHCP自动配置避免了IP地址冲突 ...

  10. MySQL数据库基础-3

    SQL语言 结构化的查询云烟 有国际标准. 非常容易学习的,关注数据本身,类似于shell SQL解释器 命令行效率比较高 应用编程接口 ODBC:Open Database Connectivity ...