python3笔记十三:python数据类型-Set集合
一:学习内容
- 集合概念
- 集合创建
- 集合添加
- 集合插入
- 集合删除
- 集合访问
- 集合操作:并集、交集
二:集合概念
1.set:类似dict,是一组key的集合,不存储value
2.本质:无序和无重复元素的集合
3.可使用大括号 {}或者set()函数创建集合;创建一个空集合必须是set(),{}代表的是空字典
三:集合创建
创建set需要一个list或者tuple或者dict作为输入集合,打印效果看着像排好序的,其实是无序的
1.创建set--用list作为输入
#用list作为输入
s1 = set([1,2,3,4,5])
print(s1)
s2 = set([1,3,2,5,4,5,2])
print(s2)

2.创建set--用tuple作为输入
#用tuple作为输入
s3 = set((1,2,3,4,5))
print(s3)
s4 = set((1,3,2,5,4,5,2))
print(s4)

3.创建set-用dict作为输入
#用dict作为输入
s5 = set({"name":"tester","age":18})
print(s5)

四:集合添加
集合名.set(x) 添加,将x作为一个整体直接全部添加到set中,x不能为字典和列表,因为字典和列表是可变的不能作为key
1.添加一个数字
s6 = set([1,2,3,4,5])
s6.add(6)
print(s6)

#添加重复值,不会有效果,因为过滤了
s7 = set([1,2,3,4,5])
s7.add(5)
print(s7)

2.添加一个列表,报错,因为list是可变的不能作为key
s8 = set([1,2,3,4,5])
s8.add([7,8,9]) #列表是可变的,不能作为key

3.添加一个元组,可以,因为tuple是不可变的,可以作为key
s9 = set([1,2,3,4,5])
s9.add((7,8,9))
print(s9)

4.添加一个字典,报错,因为字典是可变的,不可以作为key
s10 = set([1,2,3,4,5])
s10.add({1:"a"}) #报错,因为字典是可变的不能作为key
print(s10)

5.添加一个字符串,可以,因为字符串是不可变的,可以作为key
s10 = set([1,2,3,4,5])
s10.add("tester")
print(s10)

五:集合插入
集合名.update(x) 将x中每一项遍历插入到集合中
1.插入列表
s11 = set([1,2,3,4,5])
s11.update([6,7,8])
print(s11)

2.插入元组
s11 = set([1,2,3,4,5])
s11.update((6,7,8))
print(s11)

3.插入字符串,将字符串中每一项一项一项往里插入
s12 = set([1,2,3,4,5])
s12.update("test") #会插入{'t','e','s'}
print(s12)

六:集合删除
集合名.remove(x),删除x元素
1.删除集合
s13 = set([1,2,3,4,5])
s13.remove(1)

s13 = set([1,2,3,4,5])
s13.remove(6) #没有这个元素就报错
print(s13)

2.删除集合
s14 = set((1, 2, 3, 4, 5, (7, 8, 9)))
s14.remove(7) #报错

s14 = set((1, 2, 3, 4, 5, (7, 8, 9)))
s14.remove((7,8,9))
print(s14)

七:集合访问
1.遍历
s15 = set((1, 2, 3, 4, 5, (7, 8, 9)))
for i in s15:
print(i) #最后一个会打印(7,8,9)

2.集合是无序的,所以取出来是乱序的,每次打印的结果都可能不一样
s={"a","b","c"}
print(s)

3.集合是没有索引的
s17 = set([1, 2, 3, 4, 5])
print(s17[0]) #报错,set没有索引

4.集合枚举遍历,虽然能拿到下标,但是其实是乱序的,每次打印下标对应的值可能都不一样
s17 = set(["a", "b", "c", "d", "e"])
for index,data in enumerate(s17):
print(index,data)

八:集合操作
并集:两者相加
交集:相同部分
1.交集
s18 = set([1,2,3])
s19 = set([2,3,4])
s20 = s18 & s19 #交集为{2,3}
print(s18)
print(s20)
print(type(s20))

2.并集
s18 = set([1,2,3])
s19 = set([2,3,4])
s21 = s18 | s19 #并集为{1,2,3,4}
print(s18)
print(s21)
print(type(s21))

python3笔记十三:python数据类型-Set集合的更多相关文章
- 【转】Python数据类型之“集合(Sets)与映射(Mapping)”
[转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...
- Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之集合类型(set)
集合!Python中的集合数据基本上是为了方便数学计算使用的. 什么是集合? 集合就是“确定的一堆东西”.集合里面的东西叫做元素. 特点:1. 集合里面是没有重复的元素的. 2. ...
- 7、python数据类型之集合set
数据类型之集合setset 不允许重复的无序集合,不能通过下标取值,因为无序1.创建 创建空集合 s ={} 默认类型为字典,所以不是空集合,空集合如下 s = set() s = { ...
- python 数据类型之集合
一.集合的定义: 定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key. 特性:集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值 二 ...
- python学习笔记(二):python数据类型
上一篇博客写了python的入门和简单流程控制,这次写python的数据类型和各种数据类型的内置方法.一.数据类型是什么鬼?计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各 ...
- Python数据类型-8 集合set
集合set set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素.集合使用大括号({})框定元素,并以逗号进行分隔.但是注意:如果要创建一个空集合,必须用 set() 而不是 {} ...
- Python—数据类型之集合(Set)
1.集合是一个无序的,且不重复元素的集合.它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的. 2.基本功能包括关系测试和消除重复元素.注意:集合存在的意义就是去 ...
- Python数据类型之“集合(Sets)与映射(Mapping)”
一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的重复.以及科学计算,例如交集.并集.差分和对称差分.通俗点来说,集合是一个 ...
- Python基础-python数据类型之集合(四)
集合 集合是一个无序的,不重复的数据组合,基本功能包括关系测试和消除重复元素. 集合对象还支持 union,intersection,difference和 sysmmetric difference ...
随机推荐
- SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum avg() 函数 定义和用法 AVG 函数返回数值列的平均值.NULL ...
- Abp添加新的Api(不扩展底层方法)
定义新的实体类:FileManage;继承 FullAuditedEntity<Guid> 在XX.Application 中定义IXXservice及实现XXservice public ...
- php 多肽实例
多态定义:只关心一个接口或者基类,而不关心一个对象的具体类.(同一类型,不同结果) 这里两个例子: 第一个,我们发现,基类定义了标准,子类进行了自我规则的实现.这是多态的一个要求.同时,这是满足重写: ...
- SSD源码解读——网络搭建
之前,对SSD的论文进行了解读,可以回顾之前的博客:https://www.cnblogs.com/dengshunge/p/11665929.html. 为了加深对SSD的理解,因此对SSD的源码进 ...
- deep_learning_Function_tensorflow_unpack()
tf.unpack(A, axis)是一个解包函数.A是一个需要被解包的对象,axis是一个解包方式的定义,默认是零,如果是零,返回的结果就是按行解包.如果是1,就是按列解包. 例如: from te ...
- php获取当前网页地址
判断是否为https /** * 判断是否为https * @return bool 是https返回true;否则返回false */ function is_https() { if ( !emp ...
- WinRAR去广告
许多解压软件的广告看着令人头疼,今天我就给大家分享一个把WinRAR软件的广告去掉的方法. 环境: win rar restorator 2007(腾讯软件直接下载即可) 步骤: 首先 ...
- 02-springmvc分布式项目dataService项目配置
spring总文件 文件名:applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> ...
- poj3522 苗条树(极差最小生成树)
给你N个点和M条边 要求你求出一个生成树使得这个生成树里边权极差最小 做法① n*m做法 当最小的边已知的时候这个生成树就确定 所以最大的边也确定了 于是我们每次枚举最小的边 然后用kruskal做一 ...
- Codeforces 837D - Round Subset DP
先算出每个数的pop1(twonum),pop(fivenum)然后DP ans[i][j]表示选i个数有j个2时最多有多少个5 转移方程是 ;j--) { ;w++) { ans[j][w]=max ...