Python 学习笔记 - 集合

作者: 风味沙拉 | 来源:发表于2019-08-03 11:23 被阅读1次

Python 集合

集合(set)是无序的不重复的元素序列。

创建集合

使用花括号 { } 或者 set() 函数创建集合。但是,创建空的集合必须使用 set(),因为花括号是用于创建字典(Dictionary)的。

myset = set('12猪八戒')
myset2 = {1,2,'猪八戒'}
print(myset) # '12猪八戒' 会被分为独立的单元,见下面结果显示
print(myset2) # 三个独立元素

结果:
{'2', '戒', '1', '八', '猪'}
{1, 2, '猪八戒'}

访问元素

集合不支持索引位置方位,如:

myset2 = {1,2,'猪八戒'}
print(myset2[2])

结果:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing

修改元素

集合一旦创建不可修改,但是可以添加和移除元素。

添加元素

使用 add(元素) 往集合里添加新元素,如果元素已经存在,则不添加:

myset = {'如来佛','观音菩萨'}
myset.add('托塔天王')

print(myset)

结果:
{'托塔天王', '如来佛', '观音菩萨'}

或者使用 update(列表、元组、字典、集合) 往集合里添加新元素,且参数可以是列表、元组、字典:

# 示例 1
myset = {'如来佛','观音菩萨'}
newset = {'孙悟空','白骨精'} # 集合
myset.update(newset)

print(myset)

结果:
{'白骨精', '如来佛', '观音菩萨', '孙悟空'}

# 示例 2
myset = {'如来佛','观音菩萨'}
newset = ('孙悟空','白骨精') # 元组
myset.update(newset)

print(myset)

结果:
{'白骨精', '如来佛', '观音菩萨', '孙悟空'}

# 示例 3
myset = {'如来佛','观音菩萨'}
newset = {1:'孙悟空',2:'白骨精'} # 字典
myset.update(newset)

print(myset)

结果:
{'如来佛', '观音菩萨', 2, 1}

# 示例 4
myset = {'如来佛','观音菩萨'}
newset = ['孙悟空','白骨精'] # 列表
myset.update(newset)

print(myset)

结果:
{'白骨精', '如来佛', '观音菩萨', '孙悟空'}

移除元素

remove(元素) 或者 discard(元素) 来移除集合中的元素,如果元素不存在则报错:

# 示例 1
myset = {'如来佛','观音菩萨'}
myset.remove('如来佛')

print(myset)

结果:
{'观音菩萨'}

# 示例 2
myset = {'如来佛','观音菩萨'}
myset.discard('如来佛')

print(myset)

结果:
{'观音菩萨'}

方法 pop()可以随机移除一个元素:

myset = {'如来佛','观音菩萨'}
myset.pop()

结果:
{'观音菩萨'}

获取长度

使用 len(元组) 来获取元组长度:

myset = {'如来佛','观音菩萨'}
print(len(myset))

结果:
2

集合内置方法

方法 说明
add(元素) 向集合添加元素
clear() 移除集合所有元素
copy() 拷贝一个集合
difference(集合) 返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中
difference_update(集合) 移除两个集合中都存在的元素。注意:difference_update() 方法与 difference() 方法的区别在于 difference() 方法返回一个移除相同元素的新集合,而 difference_update() 方法是直接在原来的集合中移除元素,没有返回值。
discard(元素) 删除集合中指定的元素
intersection(集合1,集合2,集合3,...) 返回两个或更多集合中都包含的元素,即交集
intersection_update(集合1,集合2,集合3,...) 获取两个或更多集合中都重叠的元素,即计算交集。注意,intersection_update() 方法不同于 intersection() 方法,因为 intersection() 方法是返回一个新的集合,而 intersection_update() 方法是在原始的集合上移除不重叠的元素。
isdisjoint(集合) 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
issubset(集合) 判断指定集合是否为该方法参数集合的子集
issuperset(集合) 判断该方法的参数集合是否为指定集合的子集
pop() 随机移除元素
remove(元素) 移除指定元素
symmetric_difference(集合) 返回两个集合中不重复的元素集合
symmetric_difference_update(集合) 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中
union(集合1,集合2,集合3,...) 返回两个或多个集合的并集
update(集合1,集合2,集合3,...) 修改当前集合,可以添加新的元素或集合到当前集合中

相关文章

  • Python集合学习笔记

    定义: 由不同的元素组成的集合,集合中是一组无序排列的可hash值,可作为字典的key,而且集合中的值不可重复。 ...

  • Python学习笔记——集合

    1. 定义 集合的数据是唯一的 集合的数据是无序的 2. set() 去除列表[0,1,2,3,4,5,5,3,1...

  • Python 学习笔记 - 集合

    Python 集合 集合(set)是无序的、不重复的元素序列。 创建集合 使用花括号 { } 或者 set() 函...

  • Python ☞ day 4

    Python学习笔记之 (set)集合 & 迭代器 & 函数 & 匿名函数 & 高阶函数 set set:类似di...

  • Python学习-集合(set)

    查看所有Python相关学习笔记 集合(set) 集合是随机的,其元素是不重复的 自动去重 对列表去重 先将列表转...

  • Python学习笔记之集合

    在数学上,我们把由不同的元素组成的容器叫做集合。Python引入了这一概念,集合对象是一组无序排列的可哈希的值。在...

  • Python学习笔记(三)集合

    list & tuple list列表——有序集合 len(listname) 获取list元素个数 IndexE...

  • python学习笔记04

    python学习笔记之04. 迭代器和生成器 迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式...

  • python学习笔记目录

    Python学习笔记目录(倒序) Python学习-异常 Python学习-面向对象 Python学习-文件系统 ...

  • 大师兄的Python学习笔记(十九): Python与(XML和

    大师兄的Python学习笔记(十八): Python与HTTP大师兄的Python学习笔记(二十): 爬虫(一) ...

网友评论

    本文标题:Python 学习笔记 - 集合

    本文链接:https://www.haomeiwen.com/subject/kbqjdctx.html