Python内置数据结构

五、集合(set)

python 还提供了另外一种数据类型:set

set用于包含一组无序的不重复对象。所以set中的元素有点像dictkey。这是setlist的最大区别

set基本应用有元素测试、去除list、tuple中的重复元素。

set也支持一些数学操作,像:并集(union)、交集(intersection)、差集(difference)、对称差集(symmetric difference)。

set集合创建方式一般有 2 种:字面量方式和把list、tuple、str等转换成set

5.1 set集合的创建

5.1.1 字面量方式创建set集合

字面量方式创建set集合和字面量dict有点像,都是使用的{}来包裹, 只不过set中不是键值对而已。

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}

print(basket)

set中不能存储重复元素


5.1.2 把list中的元素存入到set

使用set构造函数支持把list中的元素直接存入到新创建的set中。

nums1 = [10, 20, 30, 20, 10, 100, 200, 100]
nums2 = set(nums1)
print(nums2)

重复元素也去除成功了!

5.1.3 把字符串中的每个字符作为一个元素存入到set

s = "hello world, I love you"
cs = set(s)
print(cs)

你会发现重复字符已经去除完毕了。

注意:

创建空的set不能直接使用字面量的形式{},这样创建的是空的字典。只能使用set构造函数。

s = {}
print(type(s) is dict) s = set()
print(type(s) is dict)

5.2 set常用操作

5.2.1支持innot in

nums1 = {10, 20, 30, 20, 10, 100, 200, 100}
print(10 in nums1) # True
print(20 not in nums1) # False

5.2.2 数学操作

set也支持一些数学操作,像:并集(union)、交集(intersection)、差集(difference)、对称差集(symmetric difference)。

a = set("abcde")
b = set("defghi")
print("a:" + str(a))
print("b:" + str(b)) print("a - b 差集: " + str(a - b)) # 差集 a 中有,但是 b 中没有
print("a | b 并集: " + str(a | b)) # 并集 a 和 b 的元素全部都有 当然不会重复
print("a & b 交集: " + str(a & b)) # 交集 a 和 b 共同有的元素
print("a ^ b 对称差集: " + str(a ^ b)) # 对称差集 a 有或者 b 有,但是不是他们都有

5.2.3 set推导

list推导一样,set也支持set推导

a = {x for x in 'abracadabra' if x not in 'abc'}
print(a)

5.2.4 在集合中添加新项

s = set("hello")

s.add("z")  # 添加一项
print(s) s.update(["x", "y"]) # 添加多项
s.update("mn") # 添加多项
print(s)

Python第五章-内置数据结构05-集合的更多相关文章

  1. Python第五章-内置数据结构01-字符串

    Python 内置的数据结构 ​ 到目前为止,我们如果想保存一些数据,只能通过变量.但是如果遇到较多的数据要保存,这个时候时候用变量就变的不太现实. ​ 我们需要能够保存大量数据的类似变量的东东,这种 ...

  2. Python第五章-内置数据结构02-列表

    Python 内置的数据结构 二.列表(list) 想一想: 前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储咱们班所有同学的名字呢? 定义100个变量,每个变量存放一个学生的姓名可行吗?有 ...

  3. Python第五章-内置数据结构04-字典

    Python 内置的数据结构 四.字典(dict) 字典也是 python 提供给我们的又一个非常重要且有用的数据结构. 字典在别的语言中有时叫关联数组.关联内存.Map等. 字典中存储的是一系列的k ...

  4. Python第五章-内置数据结构03-元组

    Python 内置的数据结构 三.元组(tuple) python 作为一个发展中的语言,也提供了其他的一些数据类型. tuple也是 python 中一个标准的序列类型. 他的一些操作和str和li ...

  5. Python的4个内置数据结构

    Python提供了4个内置数据结构(内置指可以直接使用,无需先导入),可以保存任何对象集合,分别是列表.元组.字典和集合. 一.列表有序的可变对象集合. 1.列表的创建例子 list1 = []lis ...

  6. python的四种内置数据结构

    对于每种编程语言一般都会规定一些容器来保存某些数据,就像java的集合和数组一样python也同样有这样的结构 而对于python他有四个这样的内置容器来存储数据,他们都是python语言的一部分可以 ...

  7. [PY3]——内置数据结构(6)——集合及其常用操作

    集合及其常用操作Xmind图          集合的定义 # set( ) # {0,1,2} //注意不能用空的大括号来定义集合 # set(可迭代对象) In [1]: s=set();type ...

  8. Python的内置数据结构

    Python内置数据结构一共有6类: 数字 字符串 列表 元组 字典 文件 一.数字 数字类型就没什么好说的了,大家自行理解 二.字符串 1.字符串的特性(重要): 序列化特性:字符串具有一个很重要的 ...

  9. python面试总结4(算法与内置数据结构)

    算法与内置数据结构 常用算法和数据结构 sorted dict/list/set/tuple 分析时间/空间复杂度 实现常见数据结构和算法 数据结构/算法 语言内置 内置库 线性结构 list(列表) ...

随机推荐

  1. hihoCoder 1128 二分查找

    Description Input and Output Codes 描述#1128 : 二分·二分查找 Description Nettle最近在玩<艦これ>,因此Nettle收集了很多 ...

  2. 极验验证码破解之selenium

    这一篇写完很久了,因为识别率一直很低,没办法拿出来见大家,所以一直隐藏着,今天终于可以拿出来见见阳光了. 哈喽,大家好,我是星星在线,我又来了,今天给大家带来的是极验验证码的selenium破解之法, ...

  3. 移动端flex布局

    移动端flex布局 弹性盒布局语法分为两部分: 1. 添加在父容器上的语法 (1)display : flex; 设置为弹性盒(父元素添加) (2)flex-direction: 主轴排列方式 row ...

  4. unittest实战(三):用例编写

    # coding:utf-8import unittestfrom selenium import webdriverimport timefrom ddt import ddt, data, unp ...

  5. meterpreter会话渗透利用常用的32个命令归纳小结

    仅作渗透测试技术实验之用,请勿针对任何未授权网络和设备. 1.background命令 返回,把meterpreter后台挂起 2.session命令 session 命令可以查看已经成功获取的会话 ...

  6. APM监控工具Pinpoint搭建

    一:Pinpoint简介与架构图示 Pinpoint是什么Pinpoint是开源在github上的一款使用JAVA语言编写的APM监控工具,用于大规模分布式系统监控.它对性能的影响较小,只增加约3%的 ...

  7. 逆向破解之160个CrackMe —— 001(上)

    CrackMe--001 前置知识介绍: 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合,一共160个待逆向破解的程序 CrackMe:一些公开给别人尝试破解的小程序,制 ...

  8. WordPress鼠标点击特效和粒子插件

    鼠标特效 将下面代码复制到外观-主题编辑器-主题页脚(footer.php)代码<?php wp_footer(); ?>上方. <script type="text/ja ...

  9. 神奇的background——绘制图形

    相信大家在平时工作中少不了会被要求在某些元添加一些特殊的背景图片,这时候通常就拿起ps就是切切切.不说这种方式麻烦,有ui给你切好的情况已经不错,没有的就有自己动手.还可能有需要切一整张超大图的情况. ...

  10. mui中如何使用tab来切换子页面 mui-bar, mui-bar-tab

    mui是前端框架但是很多人用它写移动端 那么mui底部切换是怎么做到的呢? 如何点击某个tab来切换不同的页面? 解答: 1首先我们需要引入mui框架的底部tab元素 代码如下 <!--tabl ...