1. 定义

num = {}
print(type(num))
num2 = {1,2,3,4,5}
print(type(num2))
<class 'dict'>
<class 'set'>

集合的数据是唯一的

# 会自动去除重复数据
num2 = {1,2,3,4,5,5,3,2}
print(num2)
{1, 2, 3, 4, 5}

集合的数据是无序的

# 以下表达会报错
num2[2] --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-4-87e68eb3c3c4> in <module>()
----> 1 num2[2]
TypeError: 'set' object does not support indexing

2. set()

# set函数可以传进一个列表、元组、字符串
set1 = set([1,2,3,4,5,5])
print(set1)
{1, 2, 3, 4, 5}

去除列表[0,1,2,3,4,5,5,3,1]中重复的元素

# 利用for循环
num3 = [1,2,3,4,5,5,3,1,0]
temp = []
for each in num3:
if each not in temp:
temp.append(each)
print(temp)
[1, 2, 3, 4, 5, 0]
# 利用set函数,但是要注意,使用set可能会改变元素在集合中的位置,如num3中的0
num3 = list(set(num3))
print(num3)
[0, 1, 2, 3, 4, 5]

3. 集合的相关操作

# in 和 not in
print(6 in set1)
print(6 not in set1)
False
True
# add() 和 remove()
set2 = set([1,2,3,4,5,5])
set2.add(6)
print(set2)
set2.remove(5)
print(set2)
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 6}

4. frozenset

# 定义一个不可变的集合,此时集合不可更改,否则会报错
set3 = frozenset([1,2,3,4,5])
set3.add(0)
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-32-d6bbd56c6855> in <module>()
1 # 定义一个不可变的集合
2 set3 = frozenset([1,2,3,4,5])
----> 3 set3.add(0) AttributeError: 'frozenset' object has no attribute 'add'

Python学习笔记——集合的更多相关文章

  1. Python学习笔记——集合类型

    集合类型有两种不同的类型——可变集合(set)和不可变集合(frozenset) 可变集合不是可哈希的,不能用作字典的键,也不能用做其他集合中的元素 不可变集合是有哈希值的,能被用做字典的键或者是作为 ...

  2. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  3. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  4. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  5. Python学习笔记(七)

    Python学习笔记(七): 深浅拷贝 Set-集合 函数 1. 深浅拷贝 1. 浅拷贝-多层嵌套只拷贝第一层 a = [[1,2],3,4] b = a.copy() print(b) # 结果:[ ...

  6. Python学习笔记(八)

    Python学习笔记(八): 复习回顾 递归函数 内置函数 1. 复习回顾 1. 深浅拷贝 2. 集合 应用: 去重 关系操作:交集,并集,差集,对称差集 操作: 定义 s1 = set('alvin ...

  7. 【python学习笔记】9.魔法方法、属性和迭代器

    [python学习笔记]9.魔法方法.属性和迭代器 魔法方法:xx, 收尾各有两个下划线的方法 __init__(self): 构造方法,创建对象时候自动执行,可以为其增加参数, 父类构造方法不会被自 ...

  8. 【python学习笔记】5.条件、循环和其他语句

    [python学习笔记]5.条件.循环和其他语句 print: 用来打印表达式,不管是字符串还是其他类型,都输出以字符串输出:可以通过逗号分隔输出多个表达式 import: 导入模块     impo ...

  9. Deep learning with Python 学习笔记(9)

    神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...

随机推荐

  1. git命令行提交流程

    一.顺利提交无冲突情况(diff->add->fetch->pull->commit->push) 1.git  status 查看状态 2. git diff head ...

  2. [MySQL优化] -- 如何使用SQL Profiler 性能分析器

    mysql 的 sql 性能分析器主要用途是显示 sql 执行的整个过程中各项资源的使用情况.分析器可以更好的展示出不良 SQL 的性能问题所在. 下面我们举例介绍一下 MySQL SQL Profi ...

  3. @GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping、@RequestMapping详解

    最近写项目中突然发现有人再controller层写@PostMapping,这对于经常用@RequestMapping的我来说,感到跟奇怪,网上搜寻了一些资料,特在此整合一下: Spring4.3中引 ...

  4. 【Java-算法】 计算十六进制校验位

    如何计算16进制校验位?校验的实质是16进制取和模256的值. eg. 十六进制串:0A0B0C0D0E0F 的校验位是: 4B (HEX)计算过程: 十六进制转十进制 0A (HEX)= 10(DE ...

  5. react须知

    1. JSX是什么? 1)JSX是一种facebook发明的语法.就是将HTML和JS 可以同时书写.其实是一种js的语法糖. 但是浏览器不能识别,需要通过babel-loader来转译. @babe ...

  6. Comet OJ - Contest #11 B 背包dp

    Code: #include <bits/stdc++.h> #define N 1005 #define M 2000 #define setIO(s) freopen(s". ...

  7. HTML JS 弹层后底部页面禁止滚动处理

    1.打开新页面时需要禁止鼠标滚轮,禁止页面滑动: 1 2 3 4 在调用显示层时加上这句js代码就可以了: document.documentElement.style.overflow = &quo ...

  8. 利用ant 执行jmeter用例生成html格式报告

    1.安装ant 2.准备jmeter 及用例文件.jmx 3.编辑ant 执行文件build.xml <?xml version="1.0" encoding="G ...

  9. 索引有B+索引和hash索引,各自的区别

    Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B+树索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,那为什么大家不都用Hash索引而还要使用B+树索引呢? ...

  10. Go http包执行流程

    Go 语言实现的 Web 服务工作方式与其他形式下的 Web 工作方式并没有什么不同,具体流程如下: -- http包执行流程 Request:来自用户的请求信息,包括 post.get.Cookie ...