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集合的更多相关文章

  1. python基础数据类型--集合(set)

    python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...

  2. Python基础(三)——集合、有序 无序列表、函数、文件操作

    1.Set集合 class set(object): """ set() -> new empty set object set(iterable) -> n ...

  3. python 基础 set 集合类型补充

    为啥今天又重提这个数据类型呢?平时用的少,等要用起来的时候才发现,自己对这块啥都不知道了,so,今天就把这块再梳理一下咯. 一.set集合,是一个无序且不重复的元素集合.这一点是非常重要的. 二.集合 ...

  4. python基础08_set集合

    关于前几次课的回顾: #!/usr/bin/env python # coding:utf-8 ## 字符串 数字 列表 元组 字典 ## 可变:列表 字典 ## 不可变:字符串, 数字, 元组 na ...

  5. python基础七--集合

    12.221.昨日内容回顾 小数据池: int:-5--256 str:1.不能有特殊字符 2.*int不能超过20 编码:所能看到的最小构成单位叫字符 ascii : 8位 1字节 表示1个字符 u ...

  6. Python基础入门-集合

    今天给大家分享的是python中集合(set)的概念,集合这个词其实和高中学的数学集合的概念很相近,或者作为初学者你就可以把它理解为数学当中的集合.在python中集合(set)是由一个个键组成的,但 ...

  7. python基础——数字&集合&布尔类型

    Python的核心数据类型 内置对象 对象类型 例子 数字 123,3.1415,3+4j,Decimal(小数),Fraction(分数) 字符串 'dodo',"guido's" ...

  8. Python基础-set集合操作

    set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...

  9. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  10. Python基础操作-集合

    在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法 ...

随机推荐

  1. Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧(转载)

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  2. Linux Ctrl+z bg fg jobs命令使用

    一.暂停前台运行时间长的程序 使用Ctrl + z然后可以看到系统提示: []+ Stopped /home/test/demo.sh 二.bg命令 将程序放到后台处理 bg  %jobnumber ...

  3. DevStore开发人员服务有奖征文:小谈新浪微博开放平台

    DevStore开发人员服务有奖征文:小谈新浪微博开放平台 笔者接入新浪微博开发平台也有一段时间了,对整个平台的接入也算比較熟悉,新浪提供了统一的API接口,能够让开发人员更方便的使用API来实现自己 ...

  4. WCF信道工厂Channel Factory

    ChannelFactory<TChannel> 类 一个创建不同类型通道的工厂,客户端使用这些通道将消息发送到不同配置的服务终结点. 命名空间: System.ServiceModel ...

  5. 383. Ransom Note【easy】

    383. Ransom Note[easy] Given an arbitrary ransom note string and another string containing letters f ...

  6. maven项目工程报错:cannot be resolved to a type

    1.在本地仓库中,搜索“_maven.repositories”所有匹配项,并彻底删除 2.然后再删除“.lastUpdated”所有匹配项 3.最后再重新在eclipse中执行操作:update d ...

  7. UIWebView加上safari风格前进后退按钮(转)

    今天在写程序内打开网页的功能,写工具条的时候发现系统图标里面竟然没有后退按钮,,由于我这个是静态库工程,不可能自己弄张图上去,不然使用本库的时候还得附上图片,经过一下午的搜索,终于找到个比较靠谱的,这 ...

  8. Python os._exit() sys.exit() exit()区别

    Python退出程序的方式有两种:os._exit(), sys.exit() 1)os._exit() 直接退出 Python程序,其后的代码也不会继续执行. 2)sys.exit() 引发一个 S ...

  9. 结构体成员管理AVClass AVOption之1AVClass

    AVOption用于描述结构体中的成员变量.它最主要的作用可以概括为两个字:“赋值”. 一个AVOption结构体包含了变量名称,简短的帮助,取值等信息. 所有和AVOption有关的数据都存储在AV ...

  10. htmt 5 素材

    http://www.html5code.net/plus/list.php?tid=20