集合set,无序,是不允许重复内容的,也就是不允许重复元素,如果有重复,会自动忽略,可接收可迭代类型 (一般用于需要判断和处理交集时候用到)

集合与字典的区别是,集合没有键只有值,字典是有键的字典是一对键值对

所以创建空集合不能用{}大括号,用大括号创建空集合默认会变成字典,如果需要创建空集合用set()

创建集合

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建集合
a = set()
a = {11,22,33,44,55,55}
print(a)
#打印出 {33, 11, 44, 22, 55}

转换集合

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#转换集合
a = [11,22,33,44,55]
b = (11,22,33,44,55)
c = ""
#将列表转换成集合
zh_a = set(a)
print(zh_a)
#将元组转换成集合
zh_b = set(b)
print(zh_b)
#将字符串转换成集合
zh_c = set(c)
print(zh_c)
#打印出
#{33, 11, 44, 22, 55}
#{33, 11, 44, 22, 55}
#{'7', '5', '1', '9', '4', '2', '8', '6', '3'}

集合的类库功能

 add(self*args, **kwargs)

"添加元素"(要添加的元素)

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建一个集合
se = {11,22,33,44}
#向集合里添加元素
se.add(55)
print(se)
#打印出 {33, 11, 44, 22, 55}

clear(self*args, **kwargs)

"清空元素"()

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建一个集合
se = {11,22,33,44}
#清空集合里的元素
se.clear()
print(se)
#打印出 set() 表示空集合

difference(self*args, **kwargs)

"查找出一个集合里存在,另外一个集合不存在的元素"(格式:查找集合.difference(被判断的集合)

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建二个集合
a = {11,22,33,44}
b = {11,55,88,44}
#查找出a集合里存在,b集合不存在的元素
c = a.difference(b)
print(c)
#打印出 {33, 22}

difference_update(self*args, **kwargs)

"从当前集合中删除和B中相同的元素"(b集合)

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建二个集合
a = {11,22,33,44,999}
b = {11,55,88,44}
#从a集合中删除和B集合中相同的元素
a.difference_update(b)
print(a)
#打印出 {33, 22, 999}

 discard(self*args, **kwargs)

"移除指定元素,不存在不报错"(要移除的元素)

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建一个集合
a = {11,22,33,44,999}
#移除指定元素,不存在不报错
a.discard(999)
print(a)
#打印出 {33, 11, 44, 22}

intersection(self*args, **kwargs)

"交集,查找出a集合和b集合都存在的元素"(b集合

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建二个集合
a = {66,22,33,44,99}
b = {44,55,66,77,33}
#交集,查找出a集合和b集合都存在的元素
c = a.intersection(b)
print(c)
#打印出 {33, 66, 44}

intersection_update(self*args, **kwargs)

"交集,查找出a集合和b集合都存在的元素,并重新更新到a集合"(b集合

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建二个集合
a = {66,22,33,44,99}
b = {44,55,66,77,33}
#交集,查找出a集合和b集合都存在的元素,并重新更新到a集合
a.intersection_update(b)
print(a)
#打印出 {33, 66, 44}

isdisjoint(self*args, **kwargs)

"检查a集合和b集合是否有都存在的元素"(b集合

返回布尔值:如果没有都存在的,返回True,否则返回False

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建二个集合
a = {66,22,33,44,99}
b = {44,55,66,77,33}
#检查a集合和b集合是否有都存在的元素,
c = a.isdisjoint(b)
print(c)
#打印出 False 说明有交集

 issubset(self*args, **kwargs)

"判断一个集合是否是另一个集合的子序列"(b集合)

是返回True   不是返回False

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建二个集合
a = {11,22,33,44}
b = {11,22}
#检查a集合是否是b集合的子序列,
c1 = a.issubset(b)
print(c1)
#检查b集合是否是a集合的子序列
c2 = b.issubset(a)
print(c2)
#打印出
#False 检查a集合是否是b集合的子序列,说明a集合不是b集合的子序列
#True 检查b集合是否是a集合的子序列,说明b集合是a集合的子序列

issuperset(self*args, **kwargs)

"判断一个集合是否是另一个集合的父序列"(b集合)

是返回True   不是返回False

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#创建二个集合
a = {11,22,33,44}
b = {11,22}
#检查a集合是否是b集合的父序列,
c1 = a.issuperset(b)
print(c1)
#检查b集合是否是a集合的父序列
c2 = b.issuperset(a)
print(c2)
#打印出
#True 检查a集合是否是b集合的父序列,说明a集合是b集合的父序列
#False 检查b集合是否是a集合的父序列,说明b集合不是a集合的父序列

pop(self*args, **kwargs)

"移除元素"()

一般默认移除第一个元素,只是集合有一套自己的元素排序规则,

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
a = {44,55,66,77,88}
#打印出集合,可以看到集合里的元素排序情况
print(a)
#移除集合里的元素,默认移除元素里的第一个排序元素
b = a.pop()
#打印出被移除的元素
print(b)
#打印出a集合被移除后剩下的所有元素
print(a)
#最后打印出
#{88, 66, 44, 77, 55}
#
#{66, 44, 77, 55}

remove(self*args, **kwargs)

"移除指定元素,不存在保错"(要移除的元素)

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
a = {44,55,66,77,88}
#打印出a集合
print(a)
#移除a集合里指定的元素
a.remove(44)
#打印a集合移除指定元素后,剩下的所有元素
print(a)
#最后输出
#{88, 66, 44, 77, 55}
#{88, 66, 77, 55}

 symmetric_difference(self*args, **kwargs)

"对称差集,就是将两个集合里没有交集的元素重新组合成一个新的集合"(b集合)

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
a = {44,55,66,77,88}
b = {44,55,11,22,33}
#对称差集,就是将两个集合里没有交集的元素重新组合成一个新的集合
c = a.symmetric_difference(b)
print(c)
#输出
#{33, 66, 11, 77, 22, 88}

symmetric_difference_update(self*args, **kwargs)

"对称差集,并更新到a中,就是将两个集合里没有交集的元素重新组合更新给a集合"(b集合)

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
a = {44,55,66,77,88}
b = {44,55,11,22,33}
#对称差集,并更新到a中,就是将两个集合里没有交集的元素重新组合更新给a集合
a.symmetric_difference_update(b)
print(a)
#输出
#{33, 66, 11, 77, 22, 88}

union(self*args, **kwargs)

"并集,将两个集合合并成一个新的集合,元素有重复的会自动忽略"(b集合)

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
a = {44,55,66,77,88}
b = {44,55,11,22,33}
#并集,将两个集合合并成一个新的集合,元素有重复的会自动忽略只保留一次
c = a.union(b)
print(c)
#输出
#{33, 66, 11, 44, 77, 22, 55, 88}

update(self*args, **kwargs)

"更新,将b集合更新到a集合,相当于合并"(b集合)

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
a = {44,55,66,77,88}
b = {44,55,11,22,33}
#更新,将b集合更新到a集合,相当于合并
a.update(b)
print(a)
#输出
#{33, 66, 11, 44, 77, 22, 55, 88}

第十九节,基本数据类型,集合set的更多相关文章

  1. 第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用

    第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理 使用IP代理 ProxyHandler()格式化IP,第一个参数,请求目标可能是http或者https,对应设置build_opener ...

  2. 第三百八十九节,Django+Xadmin打造上线标准的在线教育平台—列表筛选结合分页

    第三百八十九节,Django+Xadmin打造上线标准的在线教育平台—列表筛选结合分页 根据用户的筛选条件来结合分页 实现原理就是,当用户点击一个筛选条件时,通过get请求方式传参将筛选的id或者值, ...

  3. 第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装

    第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装 xadmin介绍 xadmin是基于Django的admin开发的更完善的后台管理系统,页面基于Bootstr ...

  4. 第三百六十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能

    第三百六十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能 Django实现搜索功能 1.在Django配置搜索结果页的路由映 ...

  5. 第三百五十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)介绍以及安装

    第三百五十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)介绍以及安装 elasticsearch(搜索引擎)介绍 ElasticSearch是一个基于 ...

  6. 第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制

    第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用.自动限速.自定义spider的settings,对抗反爬机制 cookie禁用 就是在Scrapy的配置文件set ...

  7. 第三百三十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式

    第三百三十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式 我们自定义一个main.py来作为启动文件 main.py #!/usr/bin/en ...

  8. 第三百一十九节,Django框架,文件上传

    第三百一十九节,Django框架,文件上传 1.自定义上传[推荐] 请求对象.FILES.get()获取上传文件的对象上传对象.name获取上传文件名称上传对象.chunks()获取上传数据包,字节码 ...

  9. centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课

    centos shell编程5  LANMP一键安装脚本 lamp  sed  lnmp  变量和字符串比较不能用-eq  cat > /usr/local/apache2/htdocs/ind ...

随机推荐

  1. synchronized细节问题

    一.synchronized有锁重入的特点,某个线程得到对象的锁后,再次请求此对象可以再次得到改对象的锁.如下示例,在method1中调用method2,在method2中调用method3,而met ...

  2. maven添加本地依赖包方法

    1.某些情况下不方便上传本地依赖包到Maven repository,可以通过下面方法添加本地依赖包. 2.方法 1).pom.xml中添加以下代码块 <dependency> <g ...

  3. android源码查看所有分支切换分支

    cd .repo/manifests git branch -a repo init -b android-4.1.2_r1 repo sync

  4. UVALive 6911 Double Swords (Set,贪心,求区间交集)

    补:华中VJ这个题目很多标程都不能AC了,包括我下面原本AC了的代码,再交就WA掉了,感觉是样例有问题呢-- 首先左边的是必须要选的,然后右边的需要注意,有些区间是可以舍掉的.1.区间里有两个不同的A ...

  5. 淘淘商城_day11_课堂笔记

    今日大纲 发布前的准备 实施发布 一部分是由我来发布 一部分是由你们来发布 讲解分布式部署架构 测试 功能测试 压力测试 项目实战的准备以及分组 分组 抽取功能 讲解所需要开发的功能 项目部署上线流程 ...

  6. GitHub版本控制工具入门(一)

    你还在使用 SVN 吗? 那就太 low 了... 概述 要了解 github 要从另外一个软件开始,那就是 git ,他的中文意思是 傻子 ,这款软件为什么要起一个这么傻的名字呢? 那你就需要了解一 ...

  7. 屏幕居中(DIV/CSS) 的几种方法(转)

    1.利用table特性,在width and height all set 100%的时候,可以把容器嵌套在td内形成绝对居中,此时的被嵌套容器可为绝对或者相对大小.(非标准)注意不能加声明! 如是在 ...

  8. Binary Trees

    1. Definiation What is Binary Trees? Collection of node (n>=0) and in which no node can have more ...

  9. Objetive-C 中的相等比较

    1.== 用于比较两个对象的地址是否相同 1)需要注意的是相同的短字符串,一定大小整数(nsnumber),Objetive-C 底层会做cache,两个对象,指向同一个地址. 例如: NSStrin ...

  10. 浅析IO模型

    也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗.在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型.下面本文先从同步和异步的概念 说起, ...