Python 3入門基礎:集合(set)知識點詳解(6)

2021-02-20 Python自學指南
集合(set)

集合是一個無序不重複元素的序列

創建集合

可以使用大括號 {} 或者 set() 函數創建集合

創建一個空集合必須用 set() 而不是 {},因為 {} 是用來創建一個空字典

set(value) 方式創建集合,value 可以是字符串、列表、元組、字典等序列類型

創建、添加、修改等操作,集合會自動去重

{1, 2, 1, 3}            # {} {1, 2, 3}
set('12345')            # 字符串 {'3', '5', '4', '2', '1'}
set([1, 'a', 23.4])     # 列表 {1, 'a', 23.4}
set((1, 'a', 23.4))     # 元組 {1, 'a', 23.4}
set({1:1, 'b': 9})      # 字典 {1, 'b'}

添加元素

將元素 val 添加到集合 set 中,如果元素已存在,則不進行任何操作:

set.add(val)

也可以用 update 方法批量添加元素,參數可以是列表,元組,字典等:

set.update(list1, list2,...)

移除元素

如果存在元素 val 則移除,不存在就報錯:

set.remove(val)

如果存在元素 val 則移除,不存在也不會報錯:

set.discard(val)

隨機移除一個元素:

set.pop()

元素個數

與其他序列一樣,可以用 len(set) 獲取集合的元素個數。

清空集合

set.clear()
set = set()

判斷元素是否存在

val in set

其他方法

set.copy()

複製集合

set.difference(set2)

求差集,在 set 中卻不在 set2 中

set.intersection(set2)

求交集,同時存在於 set 和 set2 中

set.union(set2)

求併集,所有 set 和 set2 的元素

set.symmetric_difference(set2)

求對稱差集,不同時出現在兩個集合中的元素

set.isdisjoint(set2)

如果兩個集合沒有相同的元素,返回 True

set.issubset(set2)

如果 set 是 set2 的一個子集,返回 True

set.issuperset(set2)

如果 set 是 set2 的一個超集,返回 True

集合計算

a = set('abracadabra')
b = set('alacazam')
print(a)                                  # a 中唯一的字母
# {'a', 'r', 'b', 'c', 'd'}
print(a - b)                              # 在 a 中的字母,但不在 b 中
# {'r', 'd', 'b'}
print(a | b)                              # 在 a 或 b 中的字母
# {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
print(a & b)                              # 在 a 和 b 中都有的字母
# {'a', 'c'}
print(a ^ b)                              # 在 a 或 b 中的字母,但不同時在 a 和 b 中
# {'r', 'd', 'b', 'm', 'z', 'l'}

集合推導式

a = {x for x in 'abracadabra' if x not in 'abc'}
print(a)
# {'d', 'r'}

流程控制if 控制

if 表達式1:
   語句
   if 表達式2:
       語句
   elif 表達式3:
       語句
   else:
       語句
elif 表達式4:
   語句
else:
   語句

1、每個條件後面要使用冒號 :,表示接下來是滿足條件後要執行的語句塊。2、使用縮進來劃分語句塊,相同縮進數的語句在一起組成一個語句塊。3、在 Python 中沒有 switch - case 語句。

三元運算符:

<表達式1> if <條件> else <表達式2>

編寫條件語句時,應該儘量避免使用嵌套語句。嵌套語句不便於閱讀,而且可能會忽略一些可能性。

for 遍歷

for <循環變量> in <循環對象>:
   <語句1>
else:
   <語句2>

else 語句中的語句2隻有循環正常退出(遍歷完所有遍歷對象中的值)時執行。

在字典中遍歷時,關鍵字和對應的值可以使用 items() 方法同時解讀出來:

knights = {'gallahad': 'the pure', 'robin': 'the brave'}
for k, v in knights.items():
   print(k, v)

在序列中遍歷時,索引位置和對應值可以使用 enumerate() 函數同時得到:

for i, v in enumerate(['tic', 'tac', 'toe']):
   print(i, v)

同時遍歷兩個或更多的序列,可以使用 zip() 組合:

questions = ['name', 'quest', 'favorite color']
answers = ['lancelot', 'the holy grail', 'blue']
for q, a in zip(questions, answers):
   print('What is your {0}?  It is {1}.'.format(q, a))

要反向遍歷一個序列,首先指定這個序列,然後調用 reversed() 函數:

for i in reversed(range(1, 10, 2)):
   print(i)

要按順序遍歷一個序列,使用 sorted() 函數返回一個已排序的序列,並不修改原值:

basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
for f in sorted(set(basket)):
   print(f)

while 循環

while<條件>:
   <語句1>
else:
   <語句2>

break、continue、pass

break 語句用在 while 和 for 循環中,break 語句用來終止循環語句,即循環條件沒有 False 條件或者序列還沒被完全遞歸完,也會停止執行循環語句。   continue 語句用在 while 和 for 循環中,continue 語句用來告訴 Python 跳過當前循環的剩餘語句,然後繼續進行下一輪循環。continue 語句跳出本次循環,而 break 跳出整個循環。

pass 是空語句,是為了保持程序結構的完整性。pass 不做任何事情,一般用做佔位語句。

第一節課回顧:Python優點、基礎語法、Python簡單運行

第二節課回顧:Python 3入門基礎:運算符知識點詳解(2)

第三節課回顧:變量、數據類型知識點詳解(3)

第四節課回顧:Python 3入門基礎:字符串、字節基礎知識詳解(4)

第五節課回顧:Python 3入門基礎:元祖知識點學習(5)

人工智慧爆發,Python是最適合人工智慧的程式語言。如果你想學習Python,我為你準備了免費資料:-回復「入門」下載《 Python編程:從入門到實踐》

相關焦點

  • 6000+字:詳解python集合set,建議珍藏!!
    Python連載文章Python入門的連載文章:set使用set函數創建s3 = set([9,8,7,6])  # 將元素用列表裝起來,set只能有一個參數s3{s3.add(tuple1)  # 添加元組s3{(1, 3, 5), 1, 2, 6, 7, 8, 9}update-更新集合更新集合中的元素,將兩個集合中的元素組合在一起
  • Python基礎全套教程 8:Set集合學習(小白必看,系統學)
    set1 = set()  set2 = {1,2,3}set1.add(5)  set1.update
  • Python set集合詳解
    例如:>>> {1,2,1,(1,2,3),'c','c'}{1, 2, 'c', (1, 2, 3)}由於 Python 中的 set 集合是無序的,所以每次輸出時元素的排序順序可能都不相同。
  • python(6):Python中的六大數據類型——【set集合】
    一、集合的基本知識定義: 集合是不可重複的,無序的,不可改變的類型定義集合: a={1, 1, 1, 1, 1, 1, 3,
  • python:基礎知識-數據結構-set(集合)
    創建集合使用花括號或者set()函數;但是創建空集合不能使用「 {} 」 , 空花括號是創建空字典。
  • Python - 基礎數據類型 set 集合
    >常見運算操作運算符 |合併多個集合>>> {1, 2} | {3, 4}{1, 2, 3, 4}>>> {1, 2} | {3, 4} | {5, 6}{1, 2, 3, 4, 5, 6}
  • python的set集合學習(七)
    在python中,set集合是一個無序並且不重複的元素集合,它的關鍵字是set,依然按照之前的思維方式,我們定義一個set集合,來看它的類所具備的功能以及對象功能的詳細信息
  • Python基礎語法14個知識點大串講
    python今天和大家分享的內容是Python入門基礎語法,抽取了14個比較常用的語法展開介紹,記得點讚、留言、轉發,三連哦~Python基礎語法大串講Python 是一門面向對象的程式語言,相信這篇文章對於初學者而言應該會有一個比較大的幫助,下面我們將 Python 中常用的基礎語法和函數做了一個匯總,滿滿的乾貨,供大家學習。
  • python中集合set的使用場景概述
    在python中,集合set具有字典key的特點,其元素無序且唯一,可以通過大括號{}或者函數set來創建,用法如下>>> a = set((1, 2, 3))>>> a{1, 2, 3}>>> type(a)<class 'set'>>&
  • Python 入門系列 —— 19.Set 介紹
    Set set 可用於在一個變量中存儲多個值,set是 python 中內建的四個集合之一,其他的三個依次是:List,Tuple, Dictionary,它們有著自己的場景和用途。set 集合是無序無索引的集合,常用 {} 表示,比如下面的例子:thisset = {"apple", "banana", "cherry"}print(thisset)PS E:\dream\markdown\python> &
  • Python中的基礎數據類型(Set集合)及其常用用法簡析
    不同的元素組成(沒有重複的元素)無序集合中的元素必須是不可變類型set1 = {1, 2, 3}print(set1, type(set1))set2 = set('hello')print(set2)set3 = {1, 2, 3, 1, 2, 3}print(set3)temp1 = {}print(type(temp1))temp2 = set()print(type(temp2))t1 = ()t2 = tuple()print(type(t1), type(t2))
  • Python 入門系列 —— 20. Set的CURD操作
    set 訪問 想要訪問 set 集合,用不了 index 或 key ,但可以通過 for 循環來迭代 set 集合,或者用 in 判斷某一個值是否在集合中,如下代碼所示:thisset = {"apple", "banana", "cherry"}for
  • Python 集合 set 和 frozenset 的內建方法詳解
    In [47]: s1Out[47]: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} In [48]: s1.remove(0) In [49]: s1Out[49]: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}一次只能刪除i個元素。
  • Python:set集合、深淺拷貝與函數
  • Python自動化辦公知識點整理匯總
    自動化辦公無非是excel、ppt、word、郵件、文件處理、數據分析處理、爬蟲這些,這次就來理一理python自動化辦公的那些知識點。下面一一詳解。python基礎能做這些的前提是會使用Python,最起碼要熟悉基本語法,可以編寫小腳本。對於python語法的要求,你可以對照python基礎教程的部分查看需要學那些,找個免費視頻教程跟著學,然後多敲代碼練習。如果習慣看書的話,可以買本python入門書備查。
  • 一個入門級python爬蟲教程詳解
    這篇文章主要介紹了一個入門級python爬蟲教程詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑑價值,需要的朋友可以參考下
  • python語法基礎
    學一門語言,基礎語法一定要紮實。很多入門的編程書籍,都會花大量的篇幅來介紹基礎語法,對於毫無編程經驗的新手而言,這樣的書籍無疑是很友好的,但是對於有編程經驗的開發者而言,很多的基礎語法是通用的, 只需花費較少的時間瀏覽下基礎語法,將精力集中在語言獨有的特徵上即可。
  • python通關-集合操作方法詳解
    首先籠統的講一下python3.x集合的內置函數有17個,分別如下:序號函數描述1add(self, *args, **kwargs) 是把要傳入的元素做為一個整個添加到集合中2clear(self, *args, **kwargs) 清空集合裡面的所有元素3copy(self, *args, **kwargs
  • 工具 Python集合使用詳解
    訪問值也是同樣的方法:set是無序的集合,不能有重複的元素,也不能排序,sort()是不能使用的。創建一個set:因為set只能包含唯一的元素,所以重複的6被移除了。從已有數據創建唯一元素集合,set()是個非常好的方法。
  • Python數據類型之集合set
    :# set(序列)# s = {"123","qwe"}# 創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典# s = {},這種是創建空的字典# 集合的兩大功能:# 集合可以實現去重的功能# 集合可以實現關係測試:交集;差集;併集;是否子集;是否沒有交集