1. 程式人生 > >python set() 用法

python set() 用法

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]