集合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. Linux为STDOUT的关键字设置颜色

    echo "颜色测试aaa实测" | perl -pe 's/(aaa|实|测)/\e[1;31m$1\e[0m/g'

  2. CentOS 7 系统的安装

    1.进入安装界面 2.选择"Install CentOS 7" 3.进入欢迎界面,默认语言为"English",点击"Continue" 进 ...

  3. 多测师讲解自动化--rf关键字--断言(下)_高级讲师肖sir

    断言: 1.1Page Should Contain Maximize Browser Window sleep 2 Comment Page Should Contain hao123 #断言当前页 ...

  4. 多测师讲解selenium _enter弹框_高级讲师肖sir

    enter # from selenium import webdriver# from time import sleep# drvier=webdriver.Chrome()# url='file ...

  5. 女儿拿着小天才电话手表问我App启动流程

    前言 首先,new一个女儿, var mDdaughter = new 女儿("6岁","漂亮可爱","健康乖巧","最喜欢玩小天 ...

  6. JVM系列【2】Class文件结构

    JVM系列笔记目录 虚拟机的基础概念 class文件结构 class文件加载过程 jvm内存模型 JVM常用指令 GC与调优 如何查看class字节码文件 在idea中可以通过插件BinEd来查看二进 ...

  7. day58 Pyhton 框架Django 01

    内容回顾 python基础    网路编程    并发编程    数据库    前端     osi7层           tcp/ip 5层模型    应用层    表示层             ...

  8. github 如何解决error: failed to push some refs

    错误 error: failed to push some refs to 'https://github.com/whitclass/scrapy-spider.git' hint: Updates ...

  9. spring boot:用rocketmq消息订阅实现删除购物车商品功能(spring boot 2.3.3)

    一,为什么要使用消息队列实现删除购物车商品功能? 消息队列主要用来处理不需要立刻返回结果的业务, 常见的例子: 用户在下单后,要清除原购物车中的商品, 这个处理过程不需要马上实现也不需要返回结果给用户 ...

  10. go 数组指针 指针数组

    package main import "fmt" func test() { var p *int // 定义指针 var a = 10 p = &a // 将a的地址赋 ...