【Day 12】Set 介绍

前言

今天要来介绍一下 Set

Set

  • set 储存的是 没有顺序性不重复 的资料(会自动删除重复的元素)

  • 建立 set

    set(){} 来建立,但是 {} 里面要放东西,不然会被判定为 dict

    s = {1, 2, 3}
    print(type(s))
    x = {}
    print(type(x))
    

    s = {1, 2, 3}
    print(s)
    

    set() 建立

    settt = set(('a', 'b', 'c'))    #注意这里是两层括号
    print(settt)
    print(type(settt))
    

  • set 不能有重复元素

    s = {'Red', 'Blue', 'Yellow', 'Red'}    # 只能有一个 'Red' 
    print(s)
    

  • 想知道 set 内有多少元素:用 len() 来看

    s = {'Red', 'Blue', 'Yellow'}
    print(len(s))
    

  • 增加 set 内的元素

    • set.add():新增元素

      s = {'Red', 'Blue', 'Yellow'}
      s.add('Orange')
      print(s)
      

    • set.update():可以把任何可迭代的物件也加到原本set 当中

      s = {'Red', 'Blue', 'Yellow'}
      abcd = {'hello', 'python'}
      s.update(abcd)    #合并另一个 set
      print(s)
      

      s = {'Red', 'Blue', 'Yellow'}
      abcd = ['hello', 'python', 123]
      s.update(abcd)
      print(s)
      

    • set.union:把两个 set 合并到另一个新的 set,跟 update 的差别是建立一个新的 set 或是改变原本的 set

      set1 = {1, 2, 3}
      set2 = {'a', 'b', 'c'}
      set3 = set1.union(set2)
      print(set3)
      set1.update(set2)
      print(set1)
      

      这两个「update(), union()」的括号内可以放任何可迭代的物件(list, dic, tuple, set)但是前面一定要是 set 才可以用这两个函式。

  • 减少 set 内的元素

    • set.remove():删除元素,若括号内的元素原本的 set 里没有会错误

      s = {'Red', 'Blue', 'Yellow'}
      s.remove('Red')
      print(s)
      

    • set.discard():也是删除元素,但是括号内的元素 set 没有也不会错误

      s = {'Red', 'Blue', 'Yellow'}
      s.discard('Red')
      print(s)
      

      s = {'Red', 'Blue', 'Yellow'}
      s.discard('Orange')    #set 内没有 'Orange' 也不会错误
      print(s)
      

    • set.clear:清空 set

      s = {'Red', 'Blue', 'Yellow'}
      s.clear()
      print(s)
      print(type(s))
      

    • del:删除整个 set

      s = {'Red', 'Blue', 'Yellow'}
      del s
      
    • set.pop():与 list 不同,由於 set 没有顺序性,所以是随机移除一个 set 内的元素

      s = {'Red', 'Blue', 'Yellow'}
      s.pop()
      print(s)
      

  • loop 把跑一遍 set

    s = {'Red', 'Blue', 'Yellow'}
    for x in s:
        print(x)
    

  • 检查特定元素是否在 set

    s = {'Red', 'Blue', 'Yellow'}
    print('Red' in s)
    

  • Set Methods

    • set.intersection_update():检查 set 之间交集(共有)的元素,并把引导的 set 改为只剩交集的元素

      x = {'Red', 'Blue', 'Yellow'}
      y = {'hello', 2, 'Red'}    #共有的只有 'Red'
      x.intersection_update(y)
      print(x)
      

    • set.intersection():检查 set 之间交集(共有)的元素,并建立一个新的 set

      x = {'Red', 'Blue', 'Yellow'}
      y = {'hello', 2, 'Red'}
      x.intersection_update(y)
      z = x.intersection(y)
      print('set x =', x)
      print('set z =', z)
      

    • set.symmetric_difference_update() set.symmetric_difference():取出 set 之间交集的元素「之外」的元素

      x = {'Red', 'Blue', 'Yellow'}
      y = {'hello', 2, 'Red'}
      x.symmetric_difference_update(y)    #得到的值会盖过原本的 x
      print('set x =', x)
      

      x = {'Red', 'Blue', 'Yellow'}
      y = {'hello', 2, 'Red'}
      z = x.symmetric_difference(y)    #得到的值给 z 
      print('set z =', z)
      

    • set.difference() set.difference_update():找出该 set 与另一个 set 「不一样」的元素

      x = {'Red', 'Blue', 'Yellow'}
      y = {'hello', 2, 'Red'}
      z = x.difference(y)    #不会改变 x
      x.difference_update(y)    #会改变 x 所以放後面
      print('set z =', z)
      print('set x =', x)
      

待续...


<<:  【从实作学习ASP.NET Core】Day15 | 後台 | 自定义使用者栏位

>>:  Day15-D3 的 Zoom 缩放

Day26 ( 游戏设计 ) 猴子接香蕉

猴子接香蕉 教学原文参考:猴子接香蕉 这篇文章会介绍如何使用「创建角色」、「角色是否碰到其他角色」、...

LINE BOT聊天机器人-查询天气资讯

遮是一篇超级没有语言技术性质的文章!请三思慎入!! 今天要来做查询天气的功能。 一样有事前作业: 1...

DAY7:版面配置及基本元件之简介

今天要来说到版面配置的部分! 首先,我们第一个先从”画面设计”开始说起,还记的我们前面说到的吗?关於...

Day16 - 【概念篇】OAuth flows: Refresh Token

本系列文之後也会置於个人网站 +--------+ +---------------+ | |--...

[Day28]C# 鸡础观念- 物件导向(oop)~ 继承(Inheritance)

在人类中,基因肯定是世世代代在传承, 下一代除了接收了上一代的基因之外, 可能还会偷偷的进化, C#...