80 lines
2.0 KiB
Markdown
80 lines
2.0 KiB
Markdown
---
|
||
title: Set 集合
|
||
date: 2020-07-25 23:00:40
|
||
tags: [Python]
|
||
categories: [Python]
|
||
author: Anges黎梦
|
||
---
|
||
|
||
## 集合 Set
|
||
|
||
> 集合是一个无序的不重复序列。
|
||
|
||
> set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
|
||
|
||
## 创建集合
|
||
```
|
||
list_1 = ['a','b','c','d','a','a','b']
|
||
print(set(list_1)) # 集合的定义
|
||
print(type(set(list_1)))
|
||
```
|
||
- 定义,用{}直接定义集合,或者用set函数创建集合。
|
||
|
||
- 空集合一定要用set函数来创建,因为{}代表创建的是空字典
|
||
|
||
- 集合分为可变和不可变集合两种,set为可变集合,frozenset不可变集合
|
||
|
||
## 基本操作
|
||
```
|
||
set_1 = set(list_1)
|
||
set_1.add('o') # 集合中添加数据,可多个
|
||
print(set_1)
|
||
set_1.update() # 可以添加列表、元组、字典等,可多个。
|
||
set_1.update([1,5,7])
|
||
set_1.update({"y":9}) # 如果添加的是字典,那么添加进去的只有key
|
||
set_1.update(('t','n'))
|
||
print(set_1)
|
||
```
|
||
## del set_1 删除集合
|
||
```
|
||
set_1.remove(1) # 删除的内容一定要在集合中,否则会抛出异常
|
||
print(set_1)
|
||
set_1.discard('p') # 删除的内容不在集合中,不会抛出异常
|
||
print(set_1)
|
||
a = set_1.pop() # 随机删除集合中的某一个元素
|
||
print(set_1)
|
||
print(a)
|
||
```
|
||
## len
|
||
```
|
||
print(len(set_1))
|
||
```
|
||
## clear
|
||
```
|
||
set_1.clear()
|
||
```
|
||
|
||
```
|
||
print('a' in set_1)
|
||
```
|
||
## 集合的运算
|
||
```
|
||
set_2 = {'b', 'd', 'c', 'a'}
|
||
set_3 = {'a', 5, 7, 'b', 'n',}
|
||
print(set_2 - set_3) # 集合set_2中有,而set_3中年没有的元素
|
||
print(set_2 | set_3) # 两个集合中包含的所有元素
|
||
print(set_2 & set_3) # 两个集合中都包含的元素
|
||
print(set_2 ^ set_3) # 不同时包含与两个集合的元素
|
||
```
|
||
## 内置的方法
|
||
```
|
||
a= set_2.intersection(set_3) # 返回两个集合的交集
|
||
print(a)
|
||
|
||
print(set_2.isdisjoint(set_3)) # 判断两个集合是否有相同的元素,如果没有,返回true,如果有返回false
|
||
|
||
print(set_2.union(set_3)) # 返回两个集合的并集
|
||
```
|
||
|
||
|