文章目录

  • 变量类型之集合
    • 一、集合的性质
    • 二、集合的基本操作
      • 1.创建空集合
      • 2.集合的增删
      • 3.集合的遍历
      • 4.集合的成员运算:in 、not in。
      • 5.集合的运算
    • 三、集合的推导式

变量类型之集合

一、集合的性质

  • 集合是可变的数据类型。(只有增删,没有改)
  • 集合中只能存放不可变数据类型(数字,字符串、元组等不可变数据类型)。
  • 集合是无序的数据类型。
  • 集合的容器符号:{ },数据类型:set( )。
  • 集合set是一个无序的不重复元素序列
  • 集合的三大特性:
    • 确定性:一个元素,只有在和不在两种可能。
    • 无序性:集合中元素没有固定位置。
    • 互异性:一个集合中不可能出现重复元素。

二、集合的基本操作

  • 集合能实现的基本操作有:

    • 创建空集合:set( )。
    • 集合的增删:add、update,discard、remove、pop、clear。
    • 集合的遍历:for循环遍历,不能使用len方法取下标(无序性)。
    • 集合的成员运算:in、not in 。
    • 集合的运算:交(&)、并( | )、差( - )、对称差( ^ )。
1.创建空集合
s1 = set()
print(s1, type(s1))
# set() <class 'set'>
2.集合的增删
  • 集合的增操作:

    • add: 向集合中添加元素
s1 = set()
s1.add(1)
s1.add('abc')
print(s1)
# {1, 'abc'}
  • update: 从一个容器中将所有的元素添加到集合中
s1 = {1, 'abc'}
s1.update('hello')
print(s1)
# {1, 'h', 'l', 'e', 'o', 'abc'}
  • 集合的删除操作:

    • discard: 删除某个指定的元素,重复删除不报错,元素不存在也不会报错
s1 = {1, 'h', 'l', 'e', 'o', 'abc'}
s1.discard(1)
s1.discard(1)
print(s1)
# {'h', 'l', 'e', 'o', 'abc'}
  • remove: 删除某个指定的元素,重复删除报错,元素不存在会报错
# s1.remove('abc')
s1.remove('abc')
print(s1)
# 打印结果为:{'h', 'o', 'e', 'l'}
# 重复删除会报错 s1.remove('abc')KeyError: 'abc'
  • pop: 删除集合中第一个元素(不常用),可以显示被删除的元素
s1 = {'h', 'o', 'e', 'l'}
s1.pop()
print(s1.pop())
print(s1)
# 打印结果为:h{'l', 'e', 'o'}
  • clear: 清空集合,不管里边有没有元素,返回的结果永远是空的集合
s1.clear()
print(s1)
# set()
3.集合的遍历
  • 由于集合是一种可变的无序的数据类型,即没有下标,不能通过len方法遍历集合,集合只有直接遍历。
s3 = {1, 2, 3, 4}
for i in s3:print(i)
# 1 2 3 4
4.集合的成员运算:in 、not in。
  • 成员运算返回的结果为布尔值类型bool:True or False。
thisset = {'Google', 'Runoob', 'Taobao'}
print('Runoob' in thisset)
print('Facebook' in thisset)
# 打印结果为:TrueFalse
5.集合的运算
  • 集合的运算有以下几种:

    • 集合的交集:&
    • 集合的并集:|
    • 集合的差集:-
    • 集合的对称差:^
  • 集合的运算的实际应用:

    • 集合的交集:&
a = {1, 3, 5, 7, 9}
b = {1, 2, 3 ,4, 5}
print(a & b)
# {1, 3, 5}
  • 集合的并集:|
print(a | b)
# {1, 2, 3, 4, 5, 7, 9}
  • 集合的差集:-
print(a - b)
print(b - a)
# 打印结果为:{7, 9}{2, 4}
  • 集合的对称差:^
print(a ^ b)
# 打印结果为:{2, 4, 7, 9}

三、集合的推导式

  • 集合的推导式有两种:

    • 格式一:{表达式 for item in 集合}
    • 格式二:{表达式 for item in 集合 if 条件}
  • 集合的推导式的应用:
    • 格式一:{表达式 for item in 集合}
# 计算数字1, 2, 3 的平方和。
new_set = {i ** 2 for i in (1, 2, 3)}
print(new_set)
# 打印结果为:{1, 4, 9}
  • 格式二:{表达式 for item in 集合 if 条件}
# 判断不是abc的字母并输出:
new_set1 = {x for x in 'abracadabra' if x not in 'abc'}
print(new_set1,type(new_set1))
# 打印结果为:{'r', 'd'} <class 'set'>

tem in 集合 if 条件}

# 判断不是abc的字母并输出:
new_set1 = {x for x in 'abracadabra' if x not in 'abc'}
print(new_set1,type(new_set1))
# 打印结果为:{'r', 'd'} <class 'set'>

Python基本数据类型之集合相关推荐

  1. Python组合数据类型之集合类型

    单元概述 主要解决问题:让程序更好地处理一组数据 三类重要组合数据类型:集合类型.序列类型和字典类型 学完本章,我们能够在头脑中建立集合.序列和字典的模式来表达对一组数据的表达和处理 1. 定义 集合 ...

  2. 07 Python 组合数据类型(集合、序列、元组、列表)

    集合类型及操作 集合类型定义 集合是多个元素的 集合类型与数学中的集合概念一致 集合元素之间无序,每个元素唯一,不存在相同元素 集合元素不可更改,不能是可变数据类型 集合是多个元素的无序组合 集合用大 ...

  3. Python基本数据类型大集合

    由于是第一篇博客的缘故,所以小编先做一下自我介绍.本人初二,因为平日极爱吃糖,所以后面就自称糖糖咯.由于糖糖还是一个默默无闻的小菜鸟,所以开始只能写一些基础的东东,建议初学者使用哦☆ ̄(>.☆) ...

  4. Python基础数据类型之set集合

    Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...

  5. Python第五、六种数据类型——Set(集合) and Dictionary(字典)

    目录 一. Set(集合) 1.集合的定义 2.添加元素 3.集合运算 (1)交集 (2)并集 (3)差集 二. Dictionoary(字典) 1.字典的定义 2.提取字典中的所有 key 值 3. ...

  6. [转载] Python中的set(集合)数据类型

    参考链接: Python集合set add函数 Python中的set(集合)数据类型 Python中除了常见的Numbers(数字).String(字符串).List(列表).Tuple(元组).D ...

  7. Python序列 数据类型 创建方式 Tuple元组 Str字符串 List列表 dict字典 Set集合 range,zip,map,enumerate

    Python 序列分类 数据类型 详细介绍 Python 主要数据类型: 元组Tuple, 字符串Str,列表List,字典Dict,集合Set 对比 元组Tuple 字符串Str 列表List 字典 ...

  8. Python基础——数据类型—集合

    Python基础--数据类型-集合 Python基础--数据类型-集合 创建集合 快速查看元素是否在集合内 两个集合间的运算 集合a中包含,而集合b中不包含的元素 集合a或集合b中包含的所有元素 集合 ...

  9. Python——基本数据类型(二):元组、集合与字典

    一.元组 元组表现形式tuple 元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表) 使用()创建元素 元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括 ...

  10. Python组合数据类型之序列类型

    单元概述 主要解决问题:让程序更好地处理一组数据 三类重要组合数据类型:集合类型.序列类型和字典类型 学完本章,我们能够在头脑中建立集合.序列和字典的模式来表达对一组数据的表达和处理 1. 定义 序列 ...

最新文章

  1. 以可读写可追加的方式显示系统时间
  2. 如何有效地防止网站和手机APP的数据被采集?
  3. python填充空值_Python机器学习(九十一)Pandas 填充(Imputation)空值
  4. asposeword.dll通过word模板生成word、PDF
  5. 百度网盘7.3.1.10版本增加工作空间功能,可实现百度网盘与电脑文件夹同步
  6. autocomplete 属性 清除input框输入存留历史值,防止下拉历史值显示
  7. CUBRID学习笔记 46 PREPARED set Do
  8. 贝叶斯网络(Bayesian network))简介(PRML第8.1节总结)概率图模型(Graphical models)...
  9. 手机端局部滚动问题 overflow-y:auto
  10. 安鸾渗透实战平台--综合渗透--企业网站渗透流程
  11. 如何在linux上运行asp网站,linux上搭建asp网站
  12. 数据可视化_科学统计图表5——ggplot绘制南丁格尔玫瑰图
  13. 编写函数求整形数组a中存储的m个不重复的整数的第k大的整数(其中m=1,1=k=m)很简单的一个思路是酱紫的:管他辣么多干啥,上来一把排序然后直接得答案...
  14. 断点续传(视频进度条拖动以及flv.js需要断点续传)
  15. 各代iphone ipad iPod各种信息 获取设备型号等等整理
  16. 沐风:做一个会自动赚钱的小程序
  17. 图像识别——(java)opencv(人脸识别简单实现)
  18. MySQL自动化安装部署(数据库参数可自适应 DBA 推荐)
  19. 轻量级单元测试Cmockery源码学习 第一章
  20. axios 超级小白使用模板

热门文章

  1. 金蝶webapi实例
  2. 记录SpringBoot单元测试时报错nested exception is org.apache.ibatis.exceptions.PersistenceException:
  3. Doris对接hive数据源以及Doris版本滚动升级实操
  4. javaweb--------------------dom4j解析xml
  5. <LeetCode天梯>Day041 打乱数组 | 初级算法 | Python
  6. 什么是数据库?什么是非关系型数据库?什么是关系型数据库 作者:哇塞大嘴好帅(哇塞大嘴好帅
  7. 微服务知识梳理-异步通信技术两块
  8. java计算机毕业设计景区失物招领平台演示录像源码+数据库+系统+lw文档+mybatis+运行部署
  9. LES DIFFIRENTS DE QUE ET QUEL
  10. IP核--PLL、ROM、RAM