Python数据类型-8 集合set
集合set
set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。集合使用大括号({})框定元素,并以逗号进行分隔。但是注意:如果要创建一个空集合,必须用 set() 而不是 {} ,因为后者创建的是一个空字典。
集合数据类型的核心在于自动去重。
s = set([1,1,2,3,3,4])
s
{1, 2, 3, 4} # 自动去重
-------------------------------------
>>> set("this is test") # 对于字符串,集合会把它一个一个拆开,然后去重,空格是空格去重
{'t', ' ', 's', 'h', 'e', 'i'}
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
s = {1,2,3,4}
s.add(5)
s
{1,2,3,4,5}
s.add(5)
{1,2,3,4,5}
可以通过update()方法,将另一个对象更新到已有的集合中,这一过程同样会进行去重。
>>> s
{1, 2, 3, 4, 5}
>>> s.update("json")
>>> s
{1, 2, 3, 4, 5, 'j', 's', 'n', 'o'}
通过remove(key)方法删除指定元素,或者使用pop()方法。注意,集合的pop方法无法设置参数,删除指定的元素:
s
{1, 2, 3, 4, 5, 'j', 's', 'n', 'o'}
s.remove("n")
{1, 2, 3, 4, 5, 'j', 's', 'o'}
s.pop() # 弹出第一个元素
1
s.pop(3)
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
s.pop(3)
TypeError: pop() takes no arguments (1 given)
需要注意的是,集合不能取出某个元素,因为集合既不支持下标索引也不支持字典那样的通过键值对获取。
除了add、clear、copy、pop、remove、update等集合常规操作,剩下的全是数学意义上的集合操作,交并差等等
对集合进行交并差等,既可以使用union一类的英文方法名,也可以更方便的使用减号表示差集,“&”表示交集,“|”表示并集 。
x = set('runoob')
y = set('google')
x, y
(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重复的被删除
x & y # 交集
set(['o'])
x | y # 并集
set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'])
x - y # 差集
set(['r', 'b', 'u', 'n'])
集合数据类型属于Python内置的数据类型,但不被重视,在很多书籍中甚至都看不到一点介绍。其实,集合是一种非常有用的数据结构,它的去重和集合运算是其它内置类型都不具备的功能,在很多场合有着非常重要的作用,比如网络爬虫。
Python数据类型-8 集合set的更多相关文章
- 【转】Python数据类型之“集合(Sets)与映射(Mapping)”
[转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...
- Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之集合类型(set)
集合!Python中的集合数据基本上是为了方便数学计算使用的. 什么是集合? 集合就是“确定的一堆东西”.集合里面的东西叫做元素. 特点:1. 集合里面是没有重复的元素的. 2. ...
- 7、python数据类型之集合set
数据类型之集合setset 不允许重复的无序集合,不能通过下标取值,因为无序1.创建 创建空集合 s ={} 默认类型为字典,所以不是空集合,空集合如下 s = set() s = { ...
- python 数据类型之集合
一.集合的定义: 定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key. 特性:集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值 二 ...
- Python—数据类型之集合(Set)
1.集合是一个无序的,且不重复元素的集合.它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的. 2.基本功能包括关系测试和消除重复元素.注意:集合存在的意义就是去 ...
- Python数据类型之“集合(Sets)与映射(Mapping)”
一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的重复.以及科学计算,例如交集.并集.差分和对称差分.通俗点来说,集合是一个 ...
- Python基础-python数据类型之集合(四)
集合 集合是一个无序的,不重复的数据组合,基本功能包括关系测试和消除重复元素. 集合对象还支持 union,intersection,difference和 sysmmetric difference ...
- python 数据类型 之 集合
集合是一个数学概念:由一个或多个确定的元素所构成的整体叫做集合 集合的三个特性: 1.确定性 (element必须可hash,不可变类型是可hash的) 2.互异性(集合中element 不能重复) ...
- python数据类型之集合
对python中集合的理解 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = set ...
随机推荐
- 【C语言】写一个函数,并调用该函数求两个整数的最大公约数和最小公倍数
程序分析: 在数学中,两个数的最小公倍数=两个数的乘积/两数的最大公约数. 求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N. 如果余数为0,则N即为所求:如果余 ...
- mysql 隔离性与隔离级别
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务.最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱. 转账过程具体到程序里会有一系列的操作,比如 ...
- 解决docker: error pulling image configuration: Get https://registry-1.docker.io/v2/library/mysql/: TLS handshake timeout.
出现这个问题,一般的原因是无法连接到 docker hub,通过: systemctl stop docker echo "DOCKER_OPTS=\"\$DOCKER_OPTS ...
- C语言学习建议!8年编程开发经验
C语言是几乎所有编程语言的先驱与灵感的来源,Perl,PHP,Python和Ruby都是用它写的,同样什么Microsoft Windows,Mac OS X,还有GNU/Linu这些操作系统,都是靠 ...
- Redis注册成服务
注册服务 redis-server.exe –-service-install redis.windows.conf 删除服务 redis-server –-service-uninstall 开启服 ...
- js判断是横屏还是竖屏
1通过在html中分别引用横屏和竖屏的样式: <link rel="stylesheet" media="all and (orientation:portrait ...
- js开关菜单
开关菜单 /* 将需要的信息添加到类的静态数组里备用 设置一个值openBool,默认为false:菜单默认display为none 点击时,如果目标元素是子元素,则不做开关菜单操作,直接return ...
- github是什么,有什么用
转载连接:https://blog.csdn.net/obkoro1/article/details/68066441 写在前面:关于github的文章我已经写了两篇了,关于github个人网站搭建和 ...
- mysql免安装版配置启动时出错
今天安装了MySQL5.7的免安装版本,启动时报了服务无法启动的错误,在网上找了好久终于找到了解决方法 我找到解决方法的博客地址是:http://blog.csdn.net/qq_27093465/a ...
- 《JavaScript高级程序设计》读书笔记(三)基本概念第五小节流程控制语句
内容---语法 ---数据类型 上一小节---流程控制语句 本小节---理解函数 语句--ECMA-262规定了一组语句,也称流程控制语句 if语句-- 条件可以是任意表达式,-- ECMAScrip ...