集合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. 用border做一个移动端常见的返回按钮

    第一步 .hs1{ float: left; .mt(.25rem); .ml(.12rem); width: .3rem; height: .3rem; border-top: 2px solid ...

  2. URL中文参数乱码的一个解决办法

      浏览器对有中文参数的url大部分都用utf-8编码,但我也曾经遇见过用GB2312编码的:如果遇见这样情况,那么接受到的参数就会出现乱码.乱码情况视服务器解码方式,Asp.Net网站一般默认为ut ...

  3. Mybatis的传参

    最近重新温习了遍Mybatis ,觉得还是汇总一下比较好,方便自己以后的快速开发 最终要的一点事,自己写的话,记忆更加深刻: 首先自己先写了个静态块,防止代码冗余: private static Sq ...

  4. HDU 1079 Calendar Game 博弈

    题目大意:从1900年1月1日 - 2001年11月4日间选择一天为起点,两个人依次进行两种操作中的任意一种,当某人操作后为2001年11月4日时,该人获胜.问先手是否获胜 操作1:向后移一天 操作2 ...

  5. 【c++】size_t 和 size_type的区别

    为了使自己的程序有很好的移植性,c++程序员应该尽量使用size_t和size_type而不是int, unsigned 1. size_t是全局定义的类型:size_type是STL类中定义的类型属 ...

  6. SDK平台三态按钮的实现

    Windows平台提供了丰富的控件,但是在使用中我们不会使用它提供的默认风格,有时候需要对控件进行改写,让它展现出更友好的一面,这次主要是说明三态按钮的实现. 三态按钮指的是按钮在鼠标移到按钮上时显示 ...

  7. SQLAlchemy入门

    什么是SQLAlchemy? 是Python连接SQL数据库的一种方式,需要通过驱动来连接. 是Python中使用最广泛的ORM(对象关系映射)工具之一,即把数据库中的二维表结构映射成一个list对象 ...

  8. 博客word测试

    博客word测试 博客word测试 from __future__ import division, print_functionDOCLINES = (__doc__ or '').split(&q ...

  9. FZU 1627 Revival's road

    矩阵快速幂. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #inc ...

  10. js--学习方法之-转

    既然你找到这篇文章来,说明你是真心想学好JavaScript的.你没有想错,当今如果要开发现代网站或web应用(包括互联网创业),都要学会JavaScript.而面对泛滥的JavaScript在线学习 ...