python set() 用法
阿新 • • 發佈:2018-11-23
set() 函式是python內建函式的其中一個,屬於比較基礎的函式。建立一個無序不重複元素集,可進行關係測試,刪除重複資料,還可以計算交集、差集、並集等。
class set([iterable])
引數說明:
- iterable -- 可迭代物件物件;
- 返回新的集合物件。
例項
>>>x = set('runoob') >>> y = set('google') >>> x, y (set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重複的被刪除 >>> x & y # 交集 set(['o']) >>> x | y # 並集 set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u']) >>> x - y # 差集 set(['r', 'b', 'u', 'n'])
list1=[1,2,3,4]
s=set(list1)
print(s)
#逐個遍歷
for i in s:
print(i)
輸出:
set([1, 2, 3, 4])
1
2
3
4
使用add(key)往集合中新增元素,重複的元素自動過濾
list1=[1,2,3,4]
s=set(list1)
print(s)
s.add(4)
s.add(5)
print(s)
輸出:
set([1, 2, 3, 4])
set([1, 2, 3, 4, 5])
通過remove(key)方法可以刪除元素:
list1=['a','b','zhang','kang'] s=set(list1) print(s) s.remove('zhang') print(s) 輸出: set(['a', 'kang', 'b', 'zhang']) set(['a', 'kang', 'b'])
set還可以像數學上那樣求交集和並集
list1=['a','b','zhang','kang']
list2=['a','b','c','d']
s1=set(list1)
s2=set(list2)
#交集,使用&操作符
s3=s1&s2
#並集,使用|操作符
s4=s1|s2
print(s3)
print(s4)
輸出:
set(['a', 'b'])
set(['a', 'c', 'b', 'd', 'zhang', 'kang'])
由於項在集合中只能儲存一次,集合(set)可以用來把重複項從其他集合中過濾掉。直接把集合轉換為一個集合(set),然後再轉換回來即可
L = [1,2,1,3,2,4,5]
>>> set(L)
set([1, 2, 3, 4, 5])
>>> L = list(set(L))
>>> L
[1, 2, 3, 4, 5]