set 的 remove() 和 discard() 方法介紹。 函數/方法名 for example: 以下運行代碼會報錯,原因在於 第9行 remove()中的‘l’在集合中不存在 而 discard()方法不會報錯。 正確的代碼如下: 運行結果如下: ...
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'}