定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key

1.不同元素组成

2.无序

3.集合中元素必须是不可变类型(数字,字符串,元组)

特性:集合的目的是讲不同的值放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值。

集合通过set(iterable)方法创建,参数iterable为可迭代对象。

s = set('hello')
print(s) # 输出结果:{'l', 'o', 'e', 'h'} s = set(['alex', 'alex', ''])
print(s) # 输出结果:{'alex', '123'}

集合的方法

add(self,element) 添加方法

s = {1,2,3,4,5,6}
s.add('')
print(s) #输出结果:{1, 2, 3, 4, 5, 6, '3'}

clear(self) 清空方法

s = {1,2,3,4,5,6}
s.clear()
print(s) #输出结果:set()

copy(self) 拷贝/复制

s = {1,2,3,4,5,6}
s1 = s.copy()
print(s1) #输出结果:{1, 2, 3, 4, 5, 6}

pop(self) 随机删除一个元素

s = {'s',1,2,3,4,5,6}
s.pop()
print(s) #输出结果:{2, 3, 4, 's', 5, 6}

remove(self,element) 删除指定元素,如果给的元素不存在,那么删除会报错

s = {'ss',1,2,3,4,5,6}
s.remove('ss')
print(s) #{1, 2, 3, 4, 5, 6}
s.remove('')
print(s) #报错

discard(self,element) 删除指定元素,如果给的元素不存在,不会报错

s = {'ss',1,2,3,4,5,6}
s.discard('ss')
print(s)
s.discard('')
print(s)

python_l = ['','','']
linux_l = ['','','']

把上面的列表转换成集合 set

p_l = set(python_l)
l_l = set(linux_l)

求交集intersection(self,s)

print(p_l.intersection(l_l))   #{'123', '456'}   求集合交集
print(p_l&l_l) #符号法

求并集union(self,s)

print(p_l.union(l_l))   #{'456', '258', '789', '123'}
print(p_l|l_l) # 符号法

求差集difference(self,s)

print("差集",p_l-l_l)
print(p_l.difference(l_l)) print("差集",l_l-p_l)
print(l_l.difference(p_l))

交叉补集
print(p_l.symmetric_difference(l_l))
print(p_l^l_l) #符号法
difference_update()  求完差集之后更新下相关集合名词。
intersection_update()求完交集之后更新下相关集合名词。 isdisjoint(self,s) 求2个集合是否有公有部分,如果没有,返回True.
# s1 ={1,2}
# s2 ={3,5}
# s3 = s1.isdisjoint(s2)
# print(s3) #True

issubset()方法用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False。

s1={1,2}
s2 = {1,2,3}
print(s1.issubset(s2)) #s1是不是s2的子集
#s1<=s2 或者说 s1是s2的子集,s2是s2的父集 #issuperset(self,s)
print(s2.issuperset(s1)) #s2是不是s1的父集

update()按指定集合来更新,可以更新多个值, 区别于add()只能加一个值

s1 ={1,2}
s2 = {1,2,3}
s1.update(s2)
print(s1) # {1,2,3}
集合默认用set生成的是可变类型的,
frozenset 也可以生成不可变类型。 也就是没法使用pop remover add等方法
# s=frozenset('hello')
# print(s)

列表去重复操作

names =['alex','alex','wupeiqi']
names = list(set(names))
print(names)
 

python全栈开发笔记---------数据类型-----集合set的更多相关文章

  1. python全栈开发笔记---数据类型--综合练习题

    一.有两个列表 l1 = [11,22,33]       l2 = [22,33,44] a. 获取内容相同的元素列表 for item in l1: if item in l2: print(it ...

  2. python全栈开发笔记---------数据类型---字典方法

    def clear(self) 清空字典里所有元素 # info = { # "k1":18, # "k2":True, # "k3":[ ...

  3. python全栈开发笔记---------数据类型-----字典dict

    字典 #dict #1.基本结构 info= { "k1" : "v1", #键值对 "k2" : "v2" } ### ...

  4. python全栈开发笔记---------数据类型****整理****

    一.数字 int(..) 二.字符串 replace/find/join/strip/startswith/split/upper/lower/format tempalet ='i am {name ...

  5. python全栈开发笔记----基本数据类型---列表List

    #list 是 类 ,列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但 ...

  6. python全栈开发笔记----基本数据类型---列表方法

    #list 类中提供的方法 #参数 1.def append(self, *args, **kwargs)原来值最后追加#对象..方法(..) #li对象调用append方法 li = [11,22, ...

  7. python全栈开发笔记---基本数据类型--字符串魔法

    字符串: def capitalize(self, *args, **kwargs) test = "aLxs" v = test.capitalize() #capitalize ...

  8. python全栈开发笔记---基本数据类型--数字型魔法

    数字  int a1 =123 a2=456 int 讲字符串转换为数字 a = " #字符串 b = int(a) #将字符串转换成整形 b = b + 1000 #只有整形的时候才可以进 ...

  9. python全栈开发笔记---------基本数据类型

    基本数据类似包括: 字符串(str) 数字(int) 列表(list) 元祖(tuple) 字典(dict) 布尔值(bool) 字符串(引号): name = "我是某某某" n ...

随机推荐

  1. visual studio code常用插件

    1.auto close tag2.chinese language pack for visual studio code3.debugger for chrome4.docker5.html cs ...

  2. U盘安装Windows Server 2008 r2失败,改用磁盘安装

    一.使用UltraISO制作系统安装启动U盘提示错误“缺少所需的CD/DVD驱动器设备驱动程序.…………”试了各种方法都不能通过U盘进行安装. 二.直接使用磁盘安装0.使用PE先将磁盘格式化.分区.1 ...

  3. html5 javascript 事件练习2

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  4. Linux基础命令---lp打印文件

    lp lp指令用来打印文件,也可以修改存在的打印任务.使用该指令可以指定打印的页码.副本等. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.openSUSE.SU ...

  5. "远程服务器返回错误: (500) 内部服务器错误"错误处理

    公司购买的百傲瑞达一卡通软件,提供Restful API调用,使用SoapUI能够调用成功,但在C#里用代码调用时一直报错:"远程服务器返回错误: (500) 内部服务器错误" 找 ...

  6. Python爬虫(二)——对开封市58同城出租房数据进行分析

    出租房面积(area) 出租房价格(price) 对比信息 代码 import matplotlib as mpl import matplotlib.pyplot as plt import pan ...

  7. 来自docker的嚎叫

    好吧, 这是我第二次玩这个玩意了, 其实我现在这家公司是没有接触到docker的, 因此对它也是半桶水的状态, 之前有朋友叫我写过shell去离线部署它, 部署都那样不值一提, 后来到我第二次去接触它 ...

  8. 绘制COCO数据集结果

    import os import time import datetime import mmcv import cv2 as cv import json import numpy as np im ...

  9. eclipse软件仿真操作

    1.编写程序代码(以SDRAM为例) 1.1 编写head.s汇编文件 .equ SDRAM_BASE, 0x30000000 .equ MEM_CTL_BASE, 0x48000000 .text ...

  10. GlitchBot

    问题 F: GlitchBot 时间限制: 1 Sec  内存限制: 128 MB 提交: 230  解决: 113 [提交] [状态] [命题人:admin] 题目描述 One of our del ...