集合(set)-Python3


set 的 remove() 和 discard()  方法介紹。

 

函數/方法名

  等價操作符 說明
所有集合類型
len(s)   集合基數:集合s中元素個數
set([obj])   可變集合工廠函數:ojb必須是支持迭代的,由obj中的元素創建集合,否則創建一個空集合
frozenset([obj])   不可變集合工廠函數:執行方式好set()方法相同,但它返回的是不可變集合
  obj in s 成員測試
  obj not in s 非成員測試
  s == t 等價測試
  s != t 不等價測試
  s < t (嚴格意義上)子集測試
s.issubset(t) s <= t 子集測試
  s > t (嚴格意義上)超集測試
s.issuperset(t) s >= t 超集測試
s.union(t) s | t 合並操作
s.intersec-tion(t) s & t 交集操作
s.difference(t) s – t 差分操作
s.symmetric_fifference(t) s ^ t 對稱差分操作
s.copy()   賦值操作:返回s的(淺復制)副本
僅適用於可變集合
s.update(t) s |= t (Union)修改操作:將t中的成員添加s
s.intersection_update(t) s &= t 交集修改操作:s中僅包括s和t中共有的成員
s.difference_update(t) s -= t 差修改操作:s中僅包括屬於s但不屬於t的成員
s.symmetric_difference_ update(t) s ^= t 對稱差分修改操作:s中包括僅屬於s或僅屬於t的成員
s.add(obj)   加操作:將obj添加到s
s.remove(obj)   刪除操作
s.discard(obj)   丟棄操作:remove()的友好版本,如果s中存在ojb,從s中刪除它
s.pop()   Pop操作:移除並返回s中的任意一個值
s.clear()   清除操作:移除s中的所有元素

 

for example:

以下運行代碼會報錯,原因在於 第9行 remove()中的‘l’在集合中不存在

而 discard()方法不會報錯。

 1 # Code based on Python 3.x
 2 # _*_ coding: utf-8 _*_
 3 # __Author: "LEMON"
 4 
 5 names = ['lemon','zw','lr', 'lr']
 6 names_set = set(names)
 7 
 8 names_set.discard('lemo')
 9 names_set.remove('l')
10 # Error: 'lr' is not in names_set
11 print(names_set)

正確的代碼如下:

 1 # Code based on Python 3.x
 2 # _*_ coding: utf-8 _*_
 3 # __Author: "LEMON"
 4 
 5 names = ['lemon','zw','lr', 'lr']
 6 names_set = set(names)
 7 
 8 names_set.discard('lemo')
 9 names_set.remove('lr')
10 # Error: 'lr' is not in names_set
11 print(names_set)

 

運行結果如下:

1 {'lemon', 'zw'}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM