Python集合(set)
阿新 • • 發佈:2018-12-11
Python中的集合同數學中的集合概念類似,也是用於儲存不重複的元素。他有可變集合(set),和不可變集合(frozenset);可變集合(set)是無序的可變的。
建立集合
直接使用{}
建立
setname = {"elment1", "element2", "element3"}
setname:集合名稱 element:表示集合中的元素,個數沒有限制,只要是Python支援的資料型別就可以
示例程式碼:
set1 = {"zhang", "li", "wang"} set2 = {1, 2, 3} set3 = {"張三", 18, 18, ("hello", "world")} print(set1) print(set2) print(set3) 執行結果: {'li', 'zhang', 'wang'} {1, 2, 3} {18, '張三', ('hello', 'world')}
注意:
set中重複的元素Python只會保留一個(如我們上面建立的set3)
使用set()
函式建立:
setname = set(iteration)
setname:表示集合的名字 iteration:表示要轉換為集合的可迭代物件,可以是列表、元組、range物件等,也可以是字串。如果是字串,返回的集合將是包含全部不重複的集合。
示例程式碼:
set1 = set("zhang,wang") set2 = set([1, 2, 3]) set3 = set(('hello', 'world')) print(set1) print(set2) print(set3) 執行結果: {'a', 'n', 'z', 'h', ',', 'w', 'g'} {1, 2, 3} {'hello', 'world'}
集合的新增和刪除
setname.add(elment)
示例程式碼:
set1 = set(['hello', 'world'])
set1.add('世界你好')
print(set1)
執行結果:
{'hello', 'world', '世界你好'}
從集合中刪除元素
集合中也可以使用
del
命令刪除整個集合,也可以使用pop()
方法或者remove()
方法刪除一個元素,或者使用集合物件的```clear()方法清空集合,即刪除集合中的全部元素,使其變為空集合。
示例程式碼:
try: set1 = set(['hello', 'world', 1, 2, 3]) set1.remove(1) print(set1) set1.pop() # 刪除一個元素預設第一個 print(set1) set1.clear() print(set1) except KeyError: print('未找到對應的key') 執行結果: {2, 3, 'world', 'hello'} {3, 'world', 'hello'} set()
集合的交集、並集和差集運算
示例程式碼:
python = set(['張三', '李四', '王二'])
c = set(['小明', '張三'])
print('學Python的同學有:', python)
print('學c的同學有:', c)
print('交集運算:', python & c) # 既學Python又學c的同學
print('並集運算:', python | c) # 輸出全部同學名字
print('差集運算:', python - c) # 輸出只選了Python沒選c的同學
執行結果:
學Python的同學有: {'李四', '王二', '張三'}
學c的同學有: {'張三', '小明'}
交集運算: {'張三'}
並集運算: {'張三', '李四', '王二', '小明'}
差集運算: {'李四', '王二'}