title: python复习100天--第4天
date: 2020-02-26 19:00:24
tags:
- python
- 基础
categories: python复习
top: 5
Python基本数据类型
集合
- 集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
- 集合的创建方法:大括号或者set函数
- 集合是无序的,而列表和元组是有序的
- 集合中的元素不存在重复(所以集合常用来数据去重)
a = {1, 2, 3} # 注意:集合只有逗号,没得冒号
b = set('abcde')
print(a, '\n', b)
# 输出结果
"""
{1, 2, 3}
{'a', 'c', 'e', 'd', 'b'}
"""
- 集合的查看方法
- 集合中单个元素无法抽出来查看,因为集合是无序的
- 集合元素的增加
- 利用add方法可以增加元素
- 利用update方法也可以增加元素
- add用于增加单个元素,update用于增加多个元素,且update增加元素的格式为列表或者元组或者字典
a = {1, 2, 3} # 注意:集合只有逗号,没得冒号
a.add(4)
a.update([5]) # 用update增加单个元素也需要使用列表格式
print(a)
# 输出结果
"""
{1, 2, 3, 4, 5}
"""
- 集合元素的删除
- 使用remove方法移除特定元素(list中也有这个方法)
- 使用pop方法随机移除一个元素(集合没有序号,所以只能随机移除)
- 使用discard移除特定元素,如果元素不存在不会报错
a = set(range(10)) # set把range转集合
a.remove(9)
a.pop() # 随机删除
a.discard(100) # 这个元素不存在,不会报错
print(a)
# 输出结果
"""
{1, 2, 3, 4, 5, 6, 7, 8}
"""
-
集合的数学运算符
Python中的集合和数学中的集合基本使用方法一致
-
:用于求两个集合的差集(绿色剩余部分表示A-B)
a = set(range(10)) # set把range转集合
b = set(range(6, 12))
print(a-b)
# 输出结果
"""
{0, 1, 2, 3, 4, 5}
"""
-
-
|
:用于求两个集合的并集(绿色部分为A|B,可以理解为A或者B)
-
a = set(range(10)) # set把range转集合
b = set(range(6, 12))
print(a | b)
# 输出结果
"""
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
"""
-
-
&
:用于求两个集合的交集(阴影黄色部分为A&B)
-
a = set(range(10)) # set把range转集合
b = set(range(6, 12))
print(a & b)
# 输出结果
"""
{8, 9, 6, 7}
"""
-
-
^
:用于求两个集合不同时存在的元素(可以翻译为A否B,上面图黄色加红色就是了)
-
a = set(range(10)) # set把range转集合
b = set(range(6, 12))
print(a ^ b)
# 输出结果
"""
{0, 1, 2, 3, 4, 5, 10, 11}
"""
-
集合中常用函数
- len函数:计算集合中元素个数。使用同列表、字典、元组、字符串
- in函数:验证元素是否在集合中。使用同列表、字典、元组、字符串
-
集合中常用方法:
- clear():移除集合中所有元素,同列表,字典
a = set(range(10)) # set把range转集合 b = set(range(6, 12)) a.clear() print(a) # 输出结果 """ set() """
- copy():复制集合,同列表
a = set(range(10)) # set把range转集合 b = a.copy() print(b) # 输出结果 """ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} """
- union:返回两个集合并集,和上面的
|
一样
a = set(range(10)) # set把range转集合 b = set(range(6, 13)) print(a.union(b)) # 输出结果 """ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} """
- difference:返回两个集合的差集,和上面的
-
一样
a = set(range(10)) # set把range转集合 b = set(range(6, 13)) print(a.difference(b)) # 输出结果 """ {0, 1, 2, 3, 4, 5} """
- intersection:返回两个集合的交集,和上面的
&
一样
a = set(range(10)) # set把range转集合 b = set(range(6, 13)) print(a.intersection(b)) # 输出结果 """ {8, 9, 6, 7} """
- symmetric_difference:返回两个不相同的元素,和上面的
^
一样
a = set(range(10)) # set把range转集合 b = set(range(6, 13)) print(a.symmetric_difference(b)) # 输出结果 """ {0, 1, 2, 3, 4, 5, 10, 11, 12} """