官术网_书友最值得收藏!

4.2 集合類型

微視頻

本節重點講解集合類型的概念和基本操作。

4.2.1 認識集合類型

集合(Sets)是一個無序不重復元素的集。它的主要功能是自動清除重復的元素。創建集合時用大括號({})來包含其元素。

例如下面的代碼運行結果:

    >>>books = {'Python 入門很輕松', 'C 語言入門很輕松','Java 入門很輕松'}
    >>>print(books)                                      #輸出集合的內容
    {'Python 入門很輕松', 'Java 入門很輕松', 'C 語言入門很輕松'}

從結果可以看出,集合輸出是無序的,并沒有按賦值時的順序輸出。

如果集合中有重復的元素,就會自動將其刪除。

例如下面的代碼及運行結果:

    >>>books = {'Python 入門很輕松', 'C 語言入門很輕松','Python 入門很輕松'}
    >>>print(goods)                                      #刪除重復的
    {'Python 入門很輕松','C 語言入門很輕松'}

大牛提醒

如果要創建一個空集合,必須使用set()函數。例如:

    books = set()  #正確創建空集合的方式
    books = { }    #錯誤創建空集合的方式

4.2.2 集合類型的常見操作

集合類型的常見操作有添加元素、移除元素、計算集合元素個數、清空集合。

1.添加元素

添加元素的語法格式如下:

    s.add( x )

將元素x添加到集合s中,如果元素已存在,則不進行任何操作。

例如下面的代碼及運行結果:

    >>>fruits = {"蘋果", "香蕉", "橘子"}
    >>>fruits.add("荔枝")                 #添加新元素
    >>>fruits
    {'蘋果', '香蕉', '荔枝', '橘子'}
    >>>fruits.add("蘋果")                 #添加集合中已經存在的元素
    >>>fruits
    {'蘋果', '香蕉', '荔枝', '橘子'}
2.移除元素

移除元素的語法格式如下:

    s.remove( x )

將元素x從集合s中移除,如果元素不存在,則會發生錯誤。

例如下面的代碼及運行結果:

    >>>fruits = {"蘋果", "香蕉", "橘子"}
    >>>fruits.remove("蘋果")                  #移除元素
    >>>fruits
    {'香蕉', '橘子'}
    >>>fruits.remove("蘋果")                  #移除不存在的元素,將會報錯
    Traceback (most recent call last):
      File "<pyshell#21>", line 1, in <module>
        fruits.remove("蘋果")
    KeyError: '蘋果'
3.計算集合元素個數

計算集合元素個數的語法格式如下:

    len(s)

這里是計算集合s元素個數。

例如下面的代碼及運行結果:

    >>>fruits = {"蘋果", "香蕉", "橘子"}
    >>>len(fruits)
    3
4.清空集合

清空集合的語法格式如下:

    s.clear()

這里是清空集合s。

    >>>fruits = {"蘋果", "香蕉", "橘子"}
    >>>fruits.clear()
    >>>fruits
    set()

【例4.1】創建公司各部門的人員信息,并進行更改和運算(源代碼\ch04\4.1.py)。

    print ("歡迎進入企業人員查詢系統")
    sales = {"張鋒", "張磊", "王天", "馮永"}       #報存營銷部的人員
    admini = {"王天", "馮永", "張淼", "蔡玲"}      #報存管理部的人員
    print ("營銷部的人員有:", sales, "\n")        #輸出營銷部的人員
    print ("管理部的人員有:", admini, "\n")       #輸出管理部的人員
    print ("交集運算:", sales&admini, "\n")       #輸出既在營銷部又在管理部的人員
    print ("并集運算:", sales|admini, "\n")       #輸出營銷部和管理部的所有人員
    print ("差集運算:", sales-admini, "\n")       #輸出營銷部但不在管理部的人員
    sales.add("張小龍")                            #營銷部添加新人
    admini.remove("王天")                          #管理部有人離職
    print ("最新營銷部的人員有:", sales, "\n")    #輸出營銷部更改后的人員
    print ("最新管理部的人員有:", admini, "\n")   #輸出管理部更改后的人員

程序運行結果如圖4-1所示。

圖4-1 例4.1的程序運行結果

主站蜘蛛池模板: 垦利县| 普安县| 郴州市| 二手房| 芜湖县| 松江区| 庆安县| 陵水| 天柱县| 西宁市| 炎陵县| 铁力市| 敖汉旗| 芦溪县| 沁水县| 吴堡县| 邓州市| 勃利县| 新竹市| 英德市| 婺源县| 密云县| 屯昌县| 武冈市| 通河县| 乐至县| 辉南县| 应城市| 宁安市| 泸溪县| 阿荣旗| 乐安县| 虞城县| 东丰县| 休宁县| 广西| 栾川县| 资兴市| 鹤山市| 南充市| 临沭县|