Python 之 集合 set 的深入浅出

本文深入探讨Python中的集合set,包括set的概念、性质和元素要求。介绍了set的创建、增加、删除元素的方法,以及清空set的操作。此外,详细阐述了集合的并集、交集、差集、对称差集等运算,强调了set查询元素的高效性。
摘要由CSDN通过智能技术生成

1、集合 set 概念

1.1 约定

  • set 翻译为 集合
  • collection 翻译为 集合类型,是一个大概念

1.2 set 性质

  • 可变的
  • 无序的
  • 不重复的元素的集合

1.3 set 元素

  • set 的元素要求必须可以 hash

  • 元素不可以使用索引

  • set 可以迭代

  • 只要数据类型是可变的,均不可 hash,不可 hash 的类型有 list / set / dict / bytearray

  • 可 hash 的数据类型:

    1、数值型 int float complex
    2、布尔型 TrueFalse
    3、字符串 string、bytes
    4、元组
    5None
    以上都是不可变类型,是可哈希类型, hashable
    

2、集合 set 的操作

2.1 set 定义 初始化

  • 定义 set 时不能直接使用 {} 来定义
  • {} 是定义字典使用的
  • 定义 set 时只能使用 set() 函数来进行定义
set_a = set(range(5))
print(set_a, type(set_a))

set_b = set()
print(set_b, type(set_b))

set_c = set(list(range(5)))
print(set_c, type(set_c))
{
   0, 1, 2, 3, 4} <class 'set'>
set() <class 'set'>
{
   0, 1, 2, 3, 4} <class 'set'>
set_d = {
   [1], 1, '1', (1,)}
print(set_c, type(set_c))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-0767f28c72b0> in <module>
----> 1 set_d = {
   [1], 1, '1', (1,)}
      2 print(set_c, type(set_c))

TypeError: unhashable type: 'list'
set_d = {
   1, '1', (1,), {
   1}}
print(set_c, type(set_c))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-e867ed634895> in <module>
----> 1 set_d = {
   1, '1', (1,), {
   1}}
      2 print(set_c, type(set_c))

TypeError: unhashable type: 'set'

2.2 set 增加元素 add(elem)

  • 增加一个元素到 set 中
  • 如果元素存在,什么都不做
set_e = {
   1, 2, 3}
print(1, set_e)

set_e.add(1)
print(2, set_e)

set_e.add(5)
print(3, set_e)
1 {
   1, 2, 3}
2 {
   1, 2, 3}
3 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值