集合(set)

集合(set):无序的,可变的,可包含任意对象的集合 ,每次输出的结果顺序都是不同的

特点:
1. 属于可变序列
2. 可以包含任意类型
3. 可变长度,任意嵌套
4. 支持原位改变
5. 集合不允许有重复的对象(相当于自动去重)

定义集合
student_set = {"xiao_a","xiao_b","xiao_c","xiao_c"}
print(type(student_set))
print(student_set)  

运行结果:

<class 'set'>
{'xiao_a', 'xiao_c', 'xiao_b'}
集合对列表去重
id_list = ["id1","id2","id1","id2"]
id_set = set(id_list)
print(id_set)

运行结果:

{'id2', 'id1'}
集合对字符串去重
string = "the one !!!"
print(string)
set =set(string)
print(set)

运行结果:

the one !!!
{'t', 'h', 'o', '!', ' ', 'e', 'n'}
定义一个空的集合

none_dict = {} #这里是创建一个空的字典
none_set = set() #空集合

集合的添加
name_set = {"wangzhe"}
name_set.add("rongyao")
print(name_set)

运行结果:

{'rongyao', 'wangzhe'}
.update 添加(序列)
name_set = {"wangzhe"}
name_set.update(["蓝天","白云"],["青山""绿水"])
print(name_set)

运行结果:

{'蓝天', '青山绿水', '白云', 'wangzhe'}
删除.remove()

删除一个不存在的元素会报错

name_set = {"wangzhe"}
name_set.remove("蓝天1")
print(name_set)

运行结果:

Traceback (most recent call last):File "G:/PyCharm_/python_basic/day01/first.py", line 2, in <module>name_set.remove("蓝天1")
KeyError: '蓝天1'
删除 .discard()

删除一个不存在的元素,不会报错

name_set = {"wangzhe"}
name_set.discard("蓝天1")

运行结果:

删除 .pop()

随机删除集合中的某个元素,并返回被删除的元素

p_set = {"1","2","3","4","5"}
print(p_set)
result = p_set.pop()
print(result)
print(p_set)

运行结果:

{'3', '4', '5', '1', '2'}
3
{'4', '5', '1', '2'}

如果是一个有序的集合比如1,2,3,4,5会从第一个开始依此删除

p_set1 = {1,2,3,4,5,6,7}
print(p_set1)
print(p_set1.pop())
print(p_set1.pop())
print(p_set1.pop())
print(p_set1)

运行结果:

{1, 2, 3, 4, 5, 6, 7}
1
2
3
{4, 5, 6, 7}
交集,并集,差集,对称差集
#交集   显示重复的
num_set1 = {1,2,3,4,6}
num_set2 = {5,2,3,4,6}inter_set1 = num_set1 & num_set2
inter_set2 = num_set1.intersection(num_set2)
print(inter_set1)
print(inter_set2)#并集:两个合并在一起
union_set1 = num_set1 | num_set2
union_set2 = num_set1.union(num_set2 )
print(union_set1)
print(union_set2)#差集 (那些不是共有的)a里面有的 b里面没有
diff_set1 = num_set1 - num_set2
diff_set2 = num_set1.difference(num_set2)
print(diff_set1)
print(diff_set2)#对称差集 (两个集合都存在的去除,然后合并)
sym_diff_set1 = num_set1^num_set2
sym_diff_set2 = num_set1.symmetric_difference(num_set2)
print(sym_diff_set1)
print(sym_diff_set2)

运行结果:

{2, 3, 4, 6}
{2, 3, 4, 6}
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6}
{1}
{1}
{1, 5}
{1, 5}

python笔记之序列(set的基本使用和常用操作)相关推荐

  1. python笔记之序列(str的基本使用和常用操作)

    序列 序列:列表(list),元组(tuple),字典(dict),集合(set),str,range() 有序列表: list,tuple 无序列表: dict,set 可变序列: list,dic ...

  2. python笔记之序列(tuple的基本使用和常用操作)

    元组的基本使用和常用操作 元组:序列的一种,可包含任意对象的集合 特点: 1. 属于不可变序列 2. 可包含任意对象 3. 通过下标访问元素(从0开始) 4. 任意嵌套 5. 不可变长度 定义一个元组 ...

  3. python笔记之序列(dict的基本使用和常用操作)

    字典 字典:简单讲就是无序的,可变的,可包含任意对象的"键值对"(key:value)的集合 特点: 1. 属于可变序列 2. 可变长度 3. 任意类型 4. 任意嵌套 5. 支持 ...

  4. python笔记之序列(list的基本使用和常用操作)

    列表 简单来说就是有序的,可变的,可包含任意对象的集合. 属于可变序列 可包含任意类型(对象) 通过下标访问元素,从0开始 长度可变,任意嵌套 支持原位改变,可以动态的收缩或者扩展大小 列表的基本使用 ...

  5. python慕课笔记_MOOC python笔记(三) 序列容器:字符串、列表、元组

    Python Python开发 Python语言 MOOC python笔记(三) 序列容器:字符串.列表.元组 容器概念 容器是Python中的重要概念,分为有序与无序. 有序容器也称为序列类型容器 ...

  6. Python入门基础篇(四)字符串的常用操作,全面易懂,简单实用!!!

    请认真阅读哦!!! 字符串几乎是所有编程语言在项目开发过程中涉及最多的一块内容,许多地方都是用到字符串的基本操作,前面讲了列表.元组,这次就来说说字符串吧 文章目录 字符串的常用操作: 1.拼接字符串 ...

  7. 用Python轻松搞定Excel中的20个常用操作

    来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...

  8. 用 Python 轻松搞定 Excel 中的 20 个常用操作

    来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...

  9. c#读取excel两列数据并绘制xy曲线_用Python轻松搞定Excel中的20个常用操作

    来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...

最新文章

  1. codeforces水题100道 第十六题 Codeforces Round #164 (Div. 2) A. Games (brute force)
  2. decisiontreeregressor_机器学习算法-Decision Tree
  3. mysql导入数据表越来越慢,快速解决mysql导数据时,格式不对、导入慢、丢数据的问题...
  4. ArrayList与String[]
  5. JavaScript游戏开发简介
  6. cxgrid中纵横单元格合并_逆向查询合并单元格中的数据,这两种方法你值得拥有...
  7. python保存数据_python各数据存储方法
  8. 计算机图形学中的边标志算法c++程序实现2
  9. 2:数据库的CURD
  10. 白话java_白话Java
  11. ubuntu / xubuntu conda/pyenv need permission, but sudo conda :command not found
  12. android qq 退出帐号,大家手机上的QQ平常用完退不退出帐号
  13. 苹果11蓝牙配对不成功怎么办_iphone11蓝牙搜不到设备怎么办
  14. 娱乐弹弹弹——程序猿眼中的女人
  15. 黑客宣称可以越狱苹果T2安全芯片
  16. 选队长游戏(Java)
  17. 数据库设计(电商平台)
  18. Linux命令大全总结(看这一篇就够了)
  19. 【The Zen of Python, by Tim Peters. Python之禅】
  20. 每秒处理10万高并发订单的乐视集团支付系统架构分享【转】

热门文章

  1. LiveVideoStackCon讲师热身分享 ( 十三 ) —— Intel QSV技术在FFmpeg中的实现与使用
  2. LeetCode——贪心思想
  3. Golang 性能优化实战
  4. 腾讯高性能图计算框架Plato及其算法应用
  5. 【Go API 开发实战 6】基础 2:配置文件读取
  6. docker 之volume
  7. TensorFlow交叉熵
  8. 启动Kafka失败Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 107
  9. 代码实现【mini版】——给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
  10. leetcode 130. Surrounded Regions | 130. 被围绕的区域(DFS递归“感染“思路)