Python 學習入門(9) set操作

2021-06-21 15:09:42 字數 4857 閱讀 2872

python的set和其他語言類似,是乙個無序、不重複元素集,基本功能包括關係測試和消除重複元素. 集合物件還支援union(聯合),intersection(交),difference(差),sysmmetric_difference(對稱差集)等數**算.

sets 支援 x in set,len(set),for x in set,作為乙個無序的集合,sets不記錄元素位置或者插入點。因此sets不支援 indexing, slicing, 或其它類序列(sequence-like)的操作。

[python]view plain

copy

print?

#!/usr/bin/env python

# it-homer in 2013

import sys  

reload(sys)  

sys.setdefaultencoding('utf-8')  

def test_set():  

x = set('ithomer')  

y = set(['i', 't', 'h', 's', 'n'])  

print("%s, %s" % (x, y))      # set(['e', 'i', 'h', 'm', 'o', 'r', 't']), set(['i', 'h', 's', 't', 'n'])

# 交集

print("%s" % (x&y))           # set(['i', 'h', 't'])

f = x.intersection(y)  

print(f)                      # set(['i', 'h', 't'])

# 並集

print("%s" % (x|y))           # set(['e', 'i', 'h', 'm', 'o', 'n', 's', 'r', 't'])

f = x.union(y)  

print(f)                      # set(['e', 'i', 'h', 'm', 'o', 'n', 's', 'r', 't'])

# 差集

print("%s" % (x-y))           # set(['m', 'r', 'e', 'o'])

f = x.difference(y)  

print(f)                      # set(['m', 'r', 'e', 'o'])

print("%s" % (y-x))           # set(['s', 'n'])

f = y.difference(x)  

print(f)                      # set(['s', 'n'])

# 對稱差集(項在x或y中,但不會同時出現在二者中) 

print("%s" %(x^y))            # set(['e', 'm', 'o', 'n', 's', 'r'])

print("%s" %(y^x))            # set(['s', 'r', 'e', 'm', 'o', 'n'])

f = x.symmetric_difference(y) # set(['e', 'm', 'o', 'n', 's', 'r'])

print(f)  

f = y.symmetric_difference(x) # set(['s', 'r', 'e', 'm', 'o', 'n'])

print(f)  

a = [11, 22, 33, 44, 11, 33, 22]  

b = set(a)  

print(b)              # set([33, 11, 44, 22])

for i in b:  

print i,            # 不換行輸出 : 33 11 44 22

def test_set2():  

s = set([1, 3, 5, 7, 9])  

t = set("ithomer")  

print(t)              # set(['e', 'i', 'h', 'm', 'o', 'r', 't'])

# 並集  

print("%s" % (s|t))   # set([1, 3, 'e', 5, 7, 'i', 9, 'm', 'o', 'r', 't', 'h'])

# 交集

print("%s" % (t&s))   # set()

# 差集

print("%s" % (t-s))   # set(['e', 'i', 'h', 'm', 'o', 'r', 't'])

print("%s" % (s-t))   # set([7, 1, 3, 5, 9])

# 對稱差集

print("%s" % (t^s))   # set([1, 3, 'e', 5, 7, 'i', 9, 'm', 'o', 'r', 't', 'h'])

print(t)              # set(['e', 'i', 'h', 'm', 'o', 'r', 't'])

t.add('y')  

t.add('g')  

print(t)              # set(['e', 'g', 'i', 'h', 'm', 'o', 'r', 't', 'y'])

try:  

print(len(t))       # 9

t.remove('y')  

except exception, e:  

print e             # 'y'

print(len(t))         # 9

t.remove('y')  

print(len(t))         # 8

def test_set3():  

s = set('ithomer')  

t = set('home')  

# 測試 x 是否是 s 的成員

f = 'i'

in s  

print(f)              # true

# 測試 x 是否不是 s 的成員

f = 'i'

notin s  

print(f)              # false

# 測試是否 t 中的每乙個元素都在 s 中 

f = t.issubset(s)  

print(f)              # true

# 測試是否 t 中的每乙個元素都在 s 中

f = s.issuperset(t)  

print(f)              # true

# 淺複製  

print(s)              # set(['e', 'i', 'h', 'm', 'o', 'r', 't'])

f = s.copy()  

print(f)              # set(['r', 'e', 't', 'i', 'h', 'm', 'o'])

f = hash('i')  

print(f)  

def test_set4():  

s = set('ithomer')  

t = set('home123')  

# s |= t

s.update(t)         

print(s)              # set(['e', 'i', 'h', 'm', 'o', '1', '3', 'r', 't', '2'])

s = set('ithomer')  

# s &= t

s.intersection_update(t)  

print(s)              # set(['h', 'e', 'm', 'o'])

s = set('ithomer')  

# s -= t

s.difference_update(t)  

print(s)              # set(['i', 'r', 't'])

s = set('ithomer')  

# s ^= t

s.symmetric_difference_update(t)  

print(s)              # set(['i', '1', '3', 'r', 't', '2'])

s = set('ithomer')  

print(s)              # set(['e', 'i', 'h', 'm', 'o', 'r', 't'])

s.add('i')  

print(s)              # set(['e', 'i', 'h', 'm', 'o', 'i', 'r', 't'])

s.remove('i')            

print(s)              # set(['e', 'h', 'm', 'o', 'i', 'r', 't'])

s.discard('i')  

print(s)              # set(['e', 'h', 'm', 'o', 'r', 't'])

s.pop()  

print(s)              # set(['h', 'm', 'o', 'r', 't'])

s.clear()  

print(s)              # set()

if __name__ == "__main__":  

#  test_set()

#  test_set2()

test_set3()  

#  test_set4()

Python學習筆記 9 Set集合

set集合是乙個無序的不重複元素序列。方式1 通過 建立 set1 print set1 print type set1 結論1 set集合是不存在重複元素的 方式2 通過set 函式建立 set2 set 123456 print type set2 print set2 第1次執行輸出結果 第2...

python的列表list和集合set操作

以下是一些python的list和set的基本操作 1.list的一些操作 list 1,2,3 print list list.extend 7,8 extend是將可迭代物件的元素依次加入列表 print list print list list.reverse 元素翻轉,注意不能將這個操作賦給...

python的列表list和集合set操作

以下是一些python的list和set的基本操作 1.list的一些操作 list 1,2,3 print list list.extend 7,8 extend是將可迭代物件的元素依次加入列表 print list print list list.reverse 元素翻轉,注意不能將這個操作賦給...