1.10 python 基本数据类型-集合
引子
现在有一个linux班一个python班,我们创建两个列表,把班里的学生表示出来:
l = ['张三','李四','老男孩']
p = ['张三','李四','alex']
现在要找出既在linux班上课也在python班上课的学生,应该怎么找?
l= ['张三','李四','老男孩']
p = ['张三','李四','alex']
l_p = []
for i in l:if i in p:l_p.append(i)
print(l_p)
上面这种方法可以实现我们的需求,但是比较麻烦,而且当列表变得非常长,执行代码的效率也是问题。
集合
集合是一个数学概念:由一个或多个确定的元素所构成的整体叫做集合。
集合中的元素有三个特征:
1.确定性(元素必须可hash)2.互异性(去重)3.无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合。注意:集合存在的意义就在于去重和关系运算
用集合解决问题
l= {'张三','李四','老男孩'} #集合定义
p = {'张三','李四','alex'}
l_p = l&p #集合求交集
print(l_p)
集合的定义
l= {1,2,3,1} #此处应说明集合“去重”的效果
#定义可变集合
>>> set_test=set('hello') #此处应说明集合的“无序性”
>>> set_test
{'l', 'o', 'e', 'h'}
#改为不可变集合frozenset
>>> f_set_test=frozenset(set_test)
>>> f_set_test
frozenset({'l', 'e', 'h', 'o'})
集合的关系运算
1. &. &=:交集——既学习linux课程也学习python课程的同学
l= {'张三','李四','老男孩'}
p = {'张三','李四','alex'}
print(l.intersection(p))
print(l&p)
2. |, |=:合集,也叫并集——linux班和python班的所有同学
求并集除了合并效果之外还有去重功能
l= {'张三','李四','老男孩'}
p = {'张三','李四','alex'}
print(l.union(p))
print(l|p)
3. -,-=:差集——只在linux而不python班的同学
l= {'张三','李四','老男孩'}
p = {'张三','李四','alex'}
print(l.difference(p))
print(l-p)
4. ^, ^=:对称差集——只在linux班或只在python班的同学
a = {1,2,3}
b = {2,3,4,5}
print(a.symmetric_difference(b))
print(a^b)
5. 包含关系
in,not in:判断某元素是否在集合内
==,!=:判断两个集合是否相等两个集合之间一般有三种关系,相交、包含、不相交。在Python中分别用下面的方法判断:set.isdisjoint(s):判断两个集合是不是不相交
set.issuperset(s):判断集合是不是包含其他集合,等同于a>=b
set.issubset(s):判断集合是不是被其他集合包含,等同于a<=b
集合的常用操作
元素的增加
# 单个元素的增加 : add(),add的作用类似列表中的append# 对序列的增加 : update(),而update类似extend方法,update方法可以支持同时传入多个参数:>>> a={1,2}
>>> a.update([3,4],[1,2,7])
>>> a
{1, 2, 3, 4, 7}
>>> a.update("hello")
>>> a
{1, 2, 3, 4, 7, 'h', 'e', 'l', 'o'}
>>> a.add("hello")
>>> a
{1, 2, 3, 4, 'hello', 7, 'h', 'e', 'l', 'o'}
元素的删除
'''
集合删除单个元素有两种方法:元素不在原集合中时:set.discard(x)不会抛出异常set.remove(x)会抛出KeyError错误
'''>>> a={1,2,3,4}
>>> a.discard(1)
>>> a
{2, 3, 4}
>>> a.discard(1)
>>> a
{2, 3, 4}
>>> a.remove(1)
Traceback (most recent call last):File "<input>", line 1, in <module>
KeyError: 1
# pop():由于集合是无序的,pop返回的结果不能确定,且当集合为空时调用pop会抛出KeyError错误,# clear():清空集合>>> a={3,"a",2.1,1}
>>> a.pop()
>>> a.pop()
>>> a.clear()
>>> a
set()
>>> a.pop()
Traceback (most recent call last):File "<input>", line 1, in <module>
KeyError: 'pop from an empty set'
转载于:https://my.oschina.net/devopsxin/blog/1922334
1.10 python 基本数据类型-集合相关推荐
- Python基础——数据类型—集合
Python基础--数据类型-集合 Python基础--数据类型-集合 创建集合 快速查看元素是否在集合内 两个集合间的运算 集合a中包含,而集合b中不包含的元素 集合a或集合b中包含的所有元素 集合 ...
- python集合类型应用场景_python学习笔记(10)--组合数据类型(集合类型)
集合类型 集合是多个元素的无序组合,每个元素唯一,不存在相同类型,每个元素是不可变类型.用{}表示,元素间用逗号分隔.建立结合类型用{},或set函数,如果是空集合必须用set. >>&g ...
- python的核心数据类型_Python核心数据类型-集合
Python核心数据类型-集合 特点 确定性 互异性 无序性 len() ##返回集合的长度 #判断元素是否在集合中 In [80]: x = set([1,2,3,4]) In [81]: 1 in ...
- Python入门篇-高级数据类型集合(set)和字典(dict)
Python入门篇-高级数据类型集合(set)和字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.集合(set) 1>.集合的特点 约定set 翻译为集合c ...
- Python序列 数据类型 创建方式 Tuple元组 Str字符串 List列表 dict字典 Set集合 range,zip,map,enumerate
Python 序列分类 数据类型 详细介绍 Python 主要数据类型: 元组Tuple, 字符串Str,列表List,字典Dict,集合Set 对比 元组Tuple 字符串Str 列表List 字典 ...
- 07 Python 组合数据类型(集合、序列、元组、列表)
集合类型及操作 集合类型定义 集合是多个元素的 集合类型与数学中的集合概念一致 集合元素之间无序,每个元素唯一,不存在相同元素 集合元素不可更改,不能是可变数据类型 集合是多个元素的无序组合 集合用大 ...
- Python组合数据类型之集合类型
单元概述 主要解决问题:让程序更好地处理一组数据 三类重要组合数据类型:集合类型.序列类型和字典类型 学完本章,我们能够在头脑中建立集合.序列和字典的模式来表达对一组数据的表达和处理 1. 定义 集合 ...
- Python基础数据类型之set集合
Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...
- Python的零基础超详细讲解(第四天)-Python的数据类型
Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...
最新文章
- DeepLab v2
- struts2教程(5)--请求参数校验
- Response_案例2_输出字符数据
- List的扩容机制,你真的明白吗?
- http拨测是什么意思_HTTP 501 是什么意思?
- LeetCode 64 最小路径和
- oracle plsql 无法连接 报 ORA-12560: TNS:protocol adapter error
- 如何成为一名优秀的web前端工程师
- docker使用_Docker的基本使用
- 最全Redis49个面试题目及答案:线程设计+哨兵+复制+事务+集群+持久化等
- 通过配置ant提高EJB开发效率
- JS常见的兼容性问题汇总
- 嵌入式系统开发-麦子学院(5)——linux高级编程之文件IO管理
- ERP与条码系统集成实现精益化可追溯
- 粗糙集(Rough Sets)
- java 父委托机制优点_Java虚拟机父类委托机制设计的优点
- 海尔电视 android,海尔电视怎么投屏
- html asterisk 电话,WebGuide: Aplicació Web (HTML5) i Asterisk utilitzant VoIP
- 只用3行代码,让Python提速4倍!最强辅助
- 电力电子技术(第二章)