1. 程式人生 > >Python集合(set)

Python集合(set)

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的同學有: {'張三', '小明'}
	交集運算: {'張三'}
	並集運算: {'張三', '李四', '王二', '小明'}
	差集運算: {'李四', '王二'}