Python中的集合同数学中的集合概念类似,也是用于保存不重复的元素。他有可变集合(set),和不可变集合(frozenset);可变集合(set)是无序的可变的。

创建集合

直接使用{}创建

setname = {"elment1", "element2", "element3"}

setname:集合名称

element:表示集合中的元素,个数没有限制,只要是Python支持的数据类型就可以

示例代码:

set1 = {"zhang", "li", "wang"}
set2 = {1, 2, 3}
set3 = {"张三", 18, 18, ("hello", "world")}
print(set1)
print(set2)
print(set3) 执行结果:
{'li', 'zhang', 'wang'}
{1, 2, 3}
{18, '张三', ('hello', 'world')}

注意:set中重复的元素Python只会保留一个(如我们上面创建的set3)

使用set()函数创建:

setname = set(iteration)

setname:表示集合的名字

iteration:表示要转换为集合的可迭代对象,可以是列表、元组、range对象等,也可以是字符串。如果是字符串,返回的集合将是包含全部不重复的集合。

示例代码:

set1 = set("zhang,wang")
set2 = set([1, 2, 3])
set3 = set(('hello', 'world'))
print(set1)
print(set2)
print(set3) 执行结果:
{'a', 'n', 'z', 'h', ',', 'w', 'g'}
{1, 2, 3}
{'hello', 'world'}

集合的添加和删除

setname.add(elment)

示例代码:

set1 = set(['hello', 'world'])
set1.add('你好世界')
print(set1) 执行结果:
{'hello', 'world', '你好世界'}

从集合中删除元素

集合中也可以使用del命令删除整个集合,也可以使用pop()方法或者remove()方法删除一个元素,或者使用集合对象的```clear()方法清空集合,即删除集合中的全部元素,使其变为空集合。

示例代码:

try:
set1 = set(['hello', 'world', 1, 2, 3])
set1.remove(1)
print(set1)
set1.pop() # 删除一个元素默认第一个
print(set1)
set1.clear()
print(set1)
except KeyError:
print('未找到对应的key') 执行结果:
{2, 3, 'world', 'hello'}
{3, 'world', 'hello'}
set()

集合的交集、并集和差集运算

示例代码:

python = set(['张三', '李四', '王二'])
c = set(['小明', '张三'])
print('学Python的同学有:', python)
print('学c的同学有:', c)
print('交集运算:', python & c) # 既学Python又学c的同学
print('并集运算:', python | c) # 输出全部同学名字
print('差集运算:', python - c) # 输出只选了Python没选c的同学 执行结果:
学Python的同学有: {'李四', '王二', '张三'}
学c的同学有: {'张三', '小明'}
交集运算: {'张三'}
并集运算: {'张三', '李四', '王二', '小明'}
差集运算: {'李四', '王二'}

最新文章

  1. MongoDB【第一篇】MongodDB初识
  2. 【工匠大道】一些Vim(Linux)不常见但很逼格的命令(不断更新中)
  3. 转载:C#中的泛型
  4. linux权限系统
  5. [HTML]JS全屏代码
  6. 自制Unity小游戏TankHero-2D(2)制作敌方坦克
  7. Java设计模式系列3--抽象工厂模式(Abstract Factory Method)
  8. HDU-2196 Computer (树形DP)
  9. PHP使用SOAP调用.net的WebService数据
  10. [Linux] 流 ( Stream )、管道 ( Pipeline ) 、Filter - 笔记
  11. windows phone 7 通过Post提交URL到服务器,从服务器获取数据(比如登陆时候使用)
  12. Bootstrap的栅格系统
  13. 视频录制SurfaceView
  14. VP9 vs H.265——下一代视频编码标准的王道之争
  15. Linux 系统负载查询及分析说明
  16. 计算机基础-CPU
  17. Error loading page Domain: WebKitErrorDomain Error Code: 101
  18. 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——实现篇:(九)以g711-mulaw为例添加新的编码格式解析支持
  19. 峰Redis学习(6)Redis 数据结构(sorted-set的操作)
  20. Django的视图层简介

热门文章

  1. learn
  2. redis-LinkedList
  3. understand 安装笔记
  4. [转] Torch中实现mini-batch RNN
  5. How to Train Triplet Networks with 100K Identities?
  6. awk入门【转】
  7. python结合pyvmomi 监控esxi的磁盘等信息
  8. maven项目部署到Tomcat
  9. webStorm 快捷键 + 浏览器
  10. python-常用模块xml、shelve、configparser、hashlib