Python基础-set集合
1、集合的创建
s = set('fansik and fanjinbao')
print(s)
打印结果(去掉了重复的字符):
{'k', 'd', 'f', 'n', ' ', 'j', 'i', 'b', 's', 'o', 'a'} 或者:
s1 = ['fansik', 'fanjinbao', 'zhansan', 'fansik']
print(set(s1))
打印结果(去掉了重复的名字):
{'fanjinbao', 'zhansan', 'fansik'} 集合对象是一组无序排列的可哈希的值(相当于字典的key):
li = [['li', 'l1'], 'fansik', 'fanjinbao']
s = set(li) #TypeError: unhashable type: 'list'
print(s)
2、集合的分类
可变集合(set):可添加和删除元素,可变集合本身非可哈希的,不能用作字典的键,也不能做其他集合的元素
li = ['fansik', 'fanjinbao']
s = set(li)
print(s)
d = {s: 'value'} # TypeError: unhashable type: 'set'
不可变集合(frozenset):与可变集合相反
3、集合的基本操作
创建集合:集合没有自己的语法格式,只能通过集合的工厂方法set()和frozenset()创建
s1 = set("fansik")
s2 = frozenset("fanjinbao")
print(s1, type(s1)) # {'i', 'n', 's', 'a', 'f', 'k'} <class 'set'>
print(s2, type(s2)) # frozenset({'j', 'i', 'n', 'o', 'b', 'a', 'f'}) <class 'frozenset'>
访问集合:由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或是用in、not in来访问或判断集合元素
s1 = set("fansik")
print('s' in s1) # True
print('fanjinbao' not in s1) # True
for i in s1:
print(i)
执行结果:
n
k
f
i
a
s 更新集合:
s1 = set("fansik")
s1.add('fanjinbao') # 添加了一个'fanjinbao'的元素到集合中
print(s1)
执行结果:
{'a', 'f', 'n', 'fanjinbao', 'i', 's', 'k'}
s1 = set("fansik")
s1.update('fanjinbao') # 将'fanjinbao'的每个字符作为一个元素添加到集合中
print(s1)
执行结果:
{'b', 'o', 'i', 'k', 'j', 'f', 'a', 's', 'n'}
s1 = set("fansik")
s1.update(['fanjinbao', 'zhangsan']) # 将'fanjinbao'和'zhangsan'两个元素添加到集合中
print(s1)
执行结果:
{'fanjinbao', 's', 'i', 'zhangsan', 'k', 'n', 'a', 'f'}
s1 = set(['fansik', 'fanjinbao', 'zhangsan'])
s1.remove('fansik') # 将'fansik'元素从集合中删除
print(s1)
执行结果:
{'zhangsan', 'fanjinbao'}
s1 = set(['fansik', 'fanjinbao', 'zhangsan'])
s1.pop() # 随机删除集合中的元素
print(s1)
执行结果:
{'zhangsan', 'fanjinbao'}
s1 = set(['fansik', 'fanjinbao', 'zhangsan'])
s1.clear() # 清空集合
print(s1)
执行结果:
set()
s1 = set(['fansik', 'fanjinbao', 'zhangsan'])
del s1 # 删除集合
print(s1)
执行结果:
NameError: name 's1' is not defined 4、集合的交集
s1 = set('abcde')
s2 = set('defgh')
print(s1.intersection(s2))
或者:
print(s1 & s2)
执行结果:
{'e', 'd'}
5、集合的并集
s1 = set('abcde')
s2 = set('defgh')
print(s1.union(s2))
或者:
print(s1 | s2)
执行结果:
{'c', 'g', 'e', 'b', 'f', 'd', 'h', 'a'}
6、集合的差集
s1 = set('abcde')
s2 = set('defgh')
print(s1.difference(s2))
或者:
print(s1 - s2)
执行结果:
{'a', 'b', 'c'}
7、对称差集
s1 = set('abcde')
s2 = set('defgh')
print(s1.symmetric_difference(s2))
或者:
print(s1 ^ s2)
执行结果:
{'a', 'g', 'b', 'f', 'c', 'h'}
8、(超集 )父集
s1 = set('abcde')
s2 = set('defgh')
s3 = set('abcdefg')
print(s1.issuperset(s2)) # False
print(s3.issuperset(s1)) # True
9、子集
s1 = set('abcde')
s2 = set('defgh')
s3 = set('abcdefg')
print(s1.issubset(s2)) # False
print(s1.issubset(s3)) # True
Python基础-set集合的更多相关文章
- python基础数据类型--集合(set)
python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...
- Python基础(三)——集合、有序 无序列表、函数、文件操作
1.Set集合 class set(object): """ set() -> new empty set object set(iterable) -> n ...
- python 基础 set 集合类型补充
为啥今天又重提这个数据类型呢?平时用的少,等要用起来的时候才发现,自己对这块啥都不知道了,so,今天就把这块再梳理一下咯. 一.set集合,是一个无序且不重复的元素集合.这一点是非常重要的. 二.集合 ...
- python基础08_set集合
关于前几次课的回顾: #!/usr/bin/env python # coding:utf-8 ## 字符串 数字 列表 元组 字典 ## 可变:列表 字典 ## 不可变:字符串, 数字, 元组 na ...
- python基础七--集合
12.221.昨日内容回顾 小数据池: int:-5--256 str:1.不能有特殊字符 2.*int不能超过20 编码:所能看到的最小构成单位叫字符 ascii : 8位 1字节 表示1个字符 u ...
- Python基础入门-集合
今天给大家分享的是python中集合(set)的概念,集合这个词其实和高中学的数学集合的概念很相近,或者作为初学者你就可以把它理解为数学当中的集合.在python中集合(set)是由一个个键组成的,但 ...
- python基础——数字&集合&布尔类型
Python的核心数据类型 内置对象 对象类型 例子 数字 123,3.1415,3+4j,Decimal(小数),Fraction(分数) 字符串 'dodo',"guido's" ...
- Python基础-set集合操作
set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- Python基础操作-集合
在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法 ...
随机推荐
- MySQL:系列合集
MySQL一:初识数据库 MySQL二:库操作 MySQL三:存储引擎 MySQL四:表操作 MySQL五:数据操作 MySQL六:索引原理与慢查询优化 MySQL七:数据备份 MySQL八:视图.触 ...
- c++ why doesn't c++ allow rebinding a reference ?
http://stackoverflow.com/questions/27037744/why-doesnt-c-allow-rebinding-a-reference# 1. The primary ...
- iOS10 获取系统通讯录新方法
#import <ContactsUI/ContactsUI.h> 遵循代理 CNContactPickerDelegate 调用通讯录 如果在iOS10的机器上调用以前的ABPeople ...
- 基于consul构建golang系统分布式服务发现机制
原文地址-石匠的Blog: http://www.bugclosed.com/post/5 在分布式架构中,服务治理是一个重要的问题.在没有服务治理的分布式集群中,各个服务之间通过手工或者配置的方式进 ...
- plsql programming 14 DML和事务管理
我们可以把多个SQL语句集中在一起, 在逻辑上组成一个事务, 从而保证这些操作或者全部被保存到数据库(用sql的说法就是”提交”), 或者被整体驳回(用sql的说法是“回滚”). 事务: ACID 原 ...
- 第一百八十一节,jQuery-UI,知问前端--自动补全 UI--邮箱自动补全
jQuery-UI,知问前端--自动补全 UI--邮箱自动补全 学习要点: 1.调用 autocomplete()方法 2.修改 autocomplete()样式 3.autocomplete()方法 ...
- python django -3 视图
视图 视图接受Web请求并且返回Web响应 视图就是一个python函数,被定义在views.py中 响应可以是一张网页的HTML内容,一个重定向,一个404错误等等 响应处理过程如下图: URLco ...
- Mysql中查看每个IP的连接数
) as ip , count(*) from information_schema.processlist group by ip;
- android自定义View_0——Create a custom view class
一:创建一个自定义view的原则: 1.符合android的标准 2.能在layout的xml中定义控件属性 3.实现些新功能 4.要兼容android的大多数版本 二:定义一个view的子类 1.可 ...
- OpenCV学习笔记:opencv_ml模块
一,简介 该模块为opencv的机器学习(machine learning,ml)代码库,包含各种机器学习算法: 0, class CvStatModel ; class CvMLData; stru ...