集合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. juc包:使用 juc 包下的显式 Lock 实现线程间通信

    一.前置知识 线程间通信三要素: 多线程+判断+操作+通知+资源类. 上面的五个要素,其他三个要素就是普通的多线程程序问题,那么通信就需要线程间的互相通知,往往伴随着何时通信的判断逻辑. 在 java ...

  2. Scala小记(一)

    Scala小记----初识Scala 一,什么是Scale? Scala是一门面向对象的,使用JVM运行的函数式编程语言,(函数式编程语言:指的就是那些将方法或者说是函数来作为参数 进行传递的编程语言 ...

  3. docker overlay原理

    周末两天研究了一下docker overlay网络的原理,因为我本身对go语言不太熟悉,直接看docker官方的libnetwork库看不太懂,看linux内核的vxlan代码又粗心大意,导致有一个环 ...

  4. CSS字体属性与文本属性

    CSS字体属性与文本属性 1. 字体属性 1.1 字体系列font-family p { font-family: "Microsoft Yahei";/*微软雅黑*/ } /*当 ...

  5. spring框架中配置mysql8.0需要注意的地方(转载)

    8.0以后的mysql很强大,但是配置写法出现了不同 主要原因是时区不同,mysql默认用的是国外某个地方的时区,而我们要用的话用使用东八时区,这是中国统一时区. 装载自https://blog.cs ...

  6. ABAP 7.55 新特性 (一)

    最近几天,SAP S4 2020对应的ABAP 7.55的新版文档已经出现.本文翻译了ABAP SQL之外的更新部分.ABAP SQL的更新比较长,会再之后单独成篇. 译者水平有限,如有错误,请评论指 ...

  7. 【图论】USACO11JAN Roads and Planes G

    题目内容 洛谷链接 Farmer John正在一个新的销售区域对他的牛奶销售方案进行调查.他想把牛奶送到\(T\)个城镇 (\(1 <= T <= 25,000\)),编号为\(1\)到\ ...

  8. APP脱壳方法三

    第一步 手机启动frida服务 第二步 手机打开要脱壳的app 第三步编辑hook代码 agent.js /* * Author: hluwa <hluwa888@gmail.com> * ...

  9. 编译安装tree命令

    查看当前的tree [12:33:33 root@C8[ ~]#rpm -qi tree Name : tree Version : 1.7.0 Release : 15.el8 Architectu ...

  10. org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest异常解决

    使用RocketMQ发送消息抛出异常,异常如下: 原因: Broker 禁止自动创建Topic,且用户没有通过手动创建此Topic,或者broker 和 Nameserver网络不通: 解决方案: 1 ...