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添加.集合删除.交集.并集.差集的操作都是非常实用的方法 ...
随机推荐
- shell脚本之read工具
#!/bin/bash # -*- coding: utf-8 -*- # echo -n "please input your name: " read name echo &q ...
- 使用pycharm手动搭建python语言django开发环境(四) django中buffer类型与str类型的联合使用
在django中,如果用到buffer类型时,buffer的编码格式是utf-8类型.使用str()进行转为字符串类型会异常. 异常会有如下提示:'ascii' codec can't decode ...
- java 中的valueOf方法和强转
case1:Object 对象转String 需要强调的是String.valueOf()方法,当参数为类型是object,且值时null的时候他的处理方式 public static String ...
- C# WEB 不显示目录结构
<system.webServer> <directoryBrowse enabled="false" /> </system.webServer&g ...
- @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)什么意思??
从hibernate2.1开始ehcache已经作为hibernate的默认缓存方案(二级缓存方案 sessionfactory级别), 在项目中有针对性的使用缓存将对性能的提升右很大的帮助. 要使用 ...
- markdown软件和网站
网站:http://markdown.xiaoshujiang.com/ 软件: Moeditor:https://moeditor.org/ Remarkable:https://remarkabl ...
- 第一百八十九节,jQueryUI,折叠菜单 UI
jQueryUI,折叠菜单 UI 学习要点: 1.使用 accordion 2.修改 accordion 样式 3.accordion()方法的属性 4.accordion()方法的事件 5.acco ...
- 如需在 HTML 页面中插入 JavaScript,请使用 <script> 标签。
如需在 HTML 页面中插入 JavaScript,请使用 <script> 标签. <script> 和 </script> 会告诉 JavaScript 在何处 ...
- Eclipse 重启选项
重启 Eclipse 重启选项允许用户重启 Eclipse. 我们可以通过点击 File 菜单选择 Restart 菜单项来重启 Eclipse. 在安装插件后,用户一般都会被提醒要重启 Eclips ...
- cocos2d-x - android 学习(集成NDK、配置开发环境)
先来贴上一大神的博客:日月之明 --- http://www.cnblogs.com/lhming/tag/cocs2d-x/ 需要工具和软件包:Eclipse.Android SDK.Android ...