linux学习

Python-集合

集合介绍

Python中的集合类似于数学中的集合概念,它是一组无序、不可重复元素序列,集合用{value1,value2}创建,某种程度上可以把集合看作是没有值的字典。

特点:

  • 不同元素组成
  • 无序
  • 集合中的元素必须是不可变类型

集合的创建

# 创建空集合必须使用 set() ,而不是 {} ,{} 是用来创建空字典
jihe = set()
print(type(jihe))
    # 结果:
    <class 'set'>

jihe = set('helloword')
print(jihe)
    # 结果:
    {'r', 'w', 'e', 'l', 'h', 'o', 'd'}

# 使用 {} 创建集合
jihe1 = {'河南', '内蒙古', '河北'}
print(type(jihe1))
    # 结果:
    <class 'set'>

集合的常用操作

  • 判断是否存在
shuiguo = {'apple', 'orange', 'pear', 'banana'}
print('apple' in shuiguo)
    # 结果:
    True
  • 集合间的运算
num_1 = set('asdfgh')
num_2 = set('dcxvnbhg')

# 集合 num_1 中包含而集合 num_2 中不包含的元素
print(num_1 - num_2)
    # 结果:
    {'a', 's', 'f'}

# 集合 num_1 或 num_2 中包含的所有元素
print(num_1 | num_2)
    # 结果:
    {'d', 'x', 'b', 'h', 'n', 'a', 'f', 'v', 'g', 's', 'c'}

# 集合 num_1 和 num_2中都包含了的元素
print(num_1 & num_2)
    # 结果:
    {'g', 'd', 'h'}

# 不同时包含于 num_1 和 num_2 的元素
print(num_1 ^ num_2)
    # 结果:
    {'x', 'b', 'n', 'a', 'f', 'v', 's', 'c'}
  • 添加元素
# 添加元素  语法:
set.add( x )

# 添加元素,参数可以是列表,元组,字典  语法:
set.update( x )
  • 移除元素
# 方法一:将元素 x 从集合 set 中移除,如果元素不存在,则会发生错误
set.remove( x )

# 方法二:如果元素不存在,也不会发生错误
set.discard( x )

# 方法三:随机删除集合中的一个元素
set.pop() 
  • 计算集合元素个数
# 语法
len(set)
# 例子:
s1 = {'lisi', 'zhsan', 'erdan'}
print(len(s1))
    # 结果:
    3
  • 清空集合
# 语法:
set.clear()
  • 内置方法
方法 描述
add() 为集合添加元素
clear() 移除集合内所有元素
copy() 拷贝一个集合
difference() 返回多个集合的差集
difference_update() 移除集合中的元素,该元素在指定的集合也存在
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 返回集合的交集
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
issubset() 判断指定集合是否为该方法参数集合的子集
issuperset() 判断该方法的参数集合是否为指定集合的子集
pop() 随机移除元素
remove() 移除指定元素
symmetric_difference() 返回两个集合中不重复的元素集合
symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中
union() 返回两个集合的并集
update() 给集合添加元素

留言

您的电子邮箱地址不会被公开。 必填项已用 * 标注