首页 > 其他分享 >数据容器之集合(笔记)

数据容器之集合(笔记)

时间:2024-10-04 19:47:27浏览次数:8  
标签:aa 容器 set dji 笔记 print oas 集合

集合的特点

不支持重复元素(去重)

而且顺序不能保证(乱序,无下标索引)

允许被修改

小总结

列表[ ]

元祖()

字符串" "

集合 { }

语法

# 语法
{"sasa", "kaka", "papa", "enen"}  # 字面量
set_1 = {"sasa", "kaka", "papa", "enen"}  # 用变量接收
set_empty = set()  # 空集合

常用操作

因为集合是乱序的,所以下标索引不能使用。

添加

集合名称.add( 加入的元素)

a = {"aa", "jd", "kk", "od", "rd", "aa"}
print(a.add("黑的"))
print(a)

'''输出
    None
    {'黑的', 'rd', 'aa', 'od', 'kk', 'jd'} '''

add函数没有返回值,只会给集合添加元素,所以直接print(a.add("黑的")),会输出None。

移除

集合名称.remove( 移除的元素)

a = {"aa", "jd", "kk", "od", "rd", "aa"}
print(a.remove("kk"))
print(a)
'''输出
    None
    {'aa', 'rd', 'jd', 'od'}
 '''

同样没有返回值

a = {"aa", "jd", "kk", "od", "rd", "aa"}
print(a.pop())
print(a)
'''输出
    jd
    {'kk', 'rd', 'aa', 'od'}
'''

pop的删去,在列表中可以输入下标索引来指定移除,但是集合没有下标索引的功能,所以集合会随机移除一个元素,不用填写下标。

list_1 = ["dji", "do", "oas", "mdasl"]  # 列表
list_1.pop(0)
print(list_1)
set_1 = {"dji", "do", "oas", "mdasl"}  # 集合
print(set_1.pop())
print(set_1)
'''输出
    ['do', 'oas', 'mdasl']
    oas
    {'dji', 'mdasl', 'do'}
'''

清空

集合名称.clear()

修改

差集和交集

取两个集合的差集:集合1.difference(集合2),得到集合1有集合2没有的元素的集合

取交集:集合1&集合2,得到两个集合都有的元素

这些操作不会影响他们原本的集合,而是得到了新的集合

set_1 = {"dji", "do", "oas", "mdasl"}
set_2 = {"dji", "ad", "aa", "s", "oas"}
print(set_1 & set_2)  # 交集
print(set_1.difference(set_2))  #差集,返回差集

'''输出
    {'oas', 'dji'}
    {'mdasl', 'do'}
'''

消除差集

集合1.difference_update(集合2),消除了集合1里与集合2相同的元素,改变了集合1,没有改变集合2

set_3 = {1, 2, 3, 4, 5}
set_4 = {1, 9, 40, 6, 2}
set_3.difference_update(set_4)
print(set_3)
print(set_4)

'''输出
    {3, 4, 5}  set_3
    {1, 2, 6, 40, 9}  set_4
'''

合并集合

集合1.union(集合2)

集合1和集合2不变,返回一个新集合,包括集合1、2的所有元素(去重)

set_3 = {1, 2, 3, 4, 5}
set_4 = {1, 9, 40, 6, 2}
print(set_3.union(set_4))  # 可以设一个变量接收返回的集合
'''输出
    {1, 2, 3, 4, 5, 6, 40, 9}
'''

统计集合元素个数

len(集合)

set_3 = {1, 2, 3, 4, 5}
print(set_num)
'''输出
    5
'''

遍历

集合没有下标索引,不能用while,for可以

set_3 = {1, 2, 3, 4, 5}
for x in set_3:
    print(x)
'''输出
    1
    2
    3
    4
    5
'''

标签:aa,容器,set,dji,笔记,print,oas,集合
From: https://blog.csdn.net/2401_86567391/article/details/142694566

相关文章

  • 【刷题笔记】2024.10.4 test
    2024.10.4test虹色的北斗七星思路题目要求\[maxn-minn-len\]的最大值,其中\(maxn\)为区间的最大值,\(minn\)为区间的最小值,\(len\)为区间的长度注意性质,最优的状态一定是区间的左右端点为最大值和最小值时。因为,如果区间左右端点不为最大值或最小值,那么区间长度就可以继续......
  • 学习笔记 - log
    目录1.定义2.性质3.计算公式本人实力不济,如有错误或建议及补充,请指出(评论或私信都行)1.定义如果\(x^n=a\),那么\(n\)叫作以\(x\)为底\(a\)的对数。记作\(n=\log_xa(x>0\text{且}x\neq1)\)。2.性质\(\log_aa^x=x\)(定义)\(\log_a1=0(a^0=1)\)\(\log_aa=1(a^1=a)\)负数......
  • 斜率优化学习笔记
    斜率优化模板题,有三倍经验,难度逐渐递增,建议从前做到后。P2365任务安排,P10979任务安排2,P5785[SDOI2012]任务安排。(但是我这种做法P10979和P5785没有区别。思路:设\(f_i\)表示第\(i\)个任务加工后所需的最小总费用,那么就有转移式。\[f_i=\displaystyle\min_{j=0}^{......
  • TS学习笔记(二)
    为了解决any类型的污染问题,引入了unkown类型、它与any类型的相似之处在于,所有类型的值都可以分配给unkown类型。letx:unknown;x=true;//正确x=42;//正确x='HelloWorld'//正确它们的不同之处在于:1、unknown类型的变量,不能直接赋值给其它类型的变量(除了any类......
  • JavaWeb基础-学习笔记02
    02MySQL数据库、SQL、数据库设计、事务、JDBC1.MySQL数据库1.1MySQL的安装:包含两种安装方式,解压包安装、压缩包安装。通过解压包安装:下载压缩包后进行解压、添加my.ini初始化配置文件、添加环境变量;添加mysqld服务、启动该服务。期间遇到的一些问题和解决方案:找......
  • C++ 容器适配器
    除了顺序容器外,标准库还定义了三个顺序容器适配器:stack、queue和priority_queue。适配器(adaptor)是标准库中的一个通用概念****。容器、迭代器和函数都有适配器。本质上,一个适配器是一种机制,能使某种事物的行为看起来像另外一种事物一样。一个容器适配器接受一种已有的容器类型,......
  • TS学习笔记(一)
    1.js的灵活性,对小项目而言非常好,但是对于大的项目而言,如果没有变量类型检查,随着变量类型的数量成倍的增加,你总有记错、遗漏的时候2.要解决灵活性带来的隐患,我们需要的是类型。更准确的说,是项目开发时的类型检查能力。3.TS由三个部分组成:类型、语法与工程。4.TS内置了一批类......
  • 菜鸟笔记之pwn工具篇--pwntools库的基本使用
    啥是pwntools?Pwntools是一个用于漏洞利用和二进制分析的Python库,广泛应用于安全研究、渗透测试和竞争性编程(如CTF,CaptureTheFlag)中。它为用户提供了一套强大的工具和功能,以简化与二进制文件的交互、网络通信以及各种常见任务的执行。简而言之,pwntools可以说是pwn手必备的......
  • 菜鸟笔记之pwn工具篇--Pwndbg基础使用
    什么是pwndbg?它是gdb的一个插件,增加了许多功能,来帮助pwn手可以快速寻找到所需要的信息,除了pwndbg之外还有peda、gef等工具可以用来协助进行调试。如何给pwndbg分屏?vim~/.gdbinitsetcontext-output/dev/pts/2#这里修改成2,那么就会在第二个终端显示信息pwndbg的基础操......
  • Docker容器Centos不能使用systemctl命令问题
    最近使用Docker搭建Centos容器时遇到这样的问题:Centos系统的不能使用systemctl命令!具体场景使用systemctl或service命令重启服务时。systemctlrestartsnmpd.service会报无权限的错误:FailedtogetD-Busconnection:Operationnotpermitted;这是docker中centos7......