1. 程式人生 > >python集合

python集合

python集合 python集合基本操作 python集合關系測試

python集合


特點:去重、關系測試;無序的 ;

功能:增、刪、查


應用範圍

1. python班的同學和運維班的同學 其中有同學兩個班都報了, 現在要把兩個班的同學合並,不能有重復。(求兩個列表的並集)

2. python班的同學和運維班的同學 其中有同學兩個班都報了,現在要把兩個班都報的同學取出來。(取兩個列表的交集)

#格式:
set_1 = {1, 2, 3, 4, 5, 6}

#例如去重:
list_1 = [1,2,3,4,5,6,1]
list_1 = set(list_1)            #列表轉集合

print(list_1,type(list_1))      #打印出來的時候已經沒有重復的。

輸出:{1, 2, 3, 4, 5, 6} <class ‘set‘>

集合的所有關系測試

求交集(兩個列表都有的)

list_1 = [1,2,3,4,5,6,1]
list_1 = set(list_1)
list_2 = set([7,8,9,0,1,2])
print(list_1.intersection(list_2))

求並集(兩個列表合並)

print(list_1.union(list_2))

求差集(A有,B相對於A沒有的)

print(list_1.difference(list_2))    #list_1 裏邊有的,list_2相對於list_1裏邊沒有的;
print(list_2.difference(list_1))    #list_2 裏邊有的,list_1相對於list_2裏邊沒有的;

取子集(兩個列表有相同的)

list_3 = set([1,2])
print(list_3.issubset(list_1))

求父集(兩個列表有相同的)

print(list_1.issuperset(list_3))

對稱差集(把兩個列表裏邊去掉重復的,其他的都取出來)

print(list_1.symmetric_difference(list_2))

判斷兩個列表有沒有交集

list_4 = set([3,4])
print(list_3.isdisjoint(list_4))

運算符求所有關系測試


#交集

print(list_1 & list_2)

#並集

print(list_1 | list_2)

#差集

print(list_1 - list_2)

#對稱差集

print(list_1 ^ list_2 )


集合基本操作

添加

list_1.add(99)
print(list_1)

添加多項

list_1.update([11,22,33])
print(list_1)

刪除(一次只能刪除一個)刪除的元素不存在 會報錯;正常刪除一個元素返回一個None 。

list_1.remove(1)
print(list_1)

任意刪除一個元素,並且返回刪除的元素;如果沒有返回None 。

print(list_1.pop())

指定刪除一個元素,如果沒有元素也不報錯,始終返回值為None;

print(list_1.discard(1))

查看集合長度

print(len(list_1))

x在不在集合裏

print(2 in list_1)

x是不是不在集合裏

print(1 not in list_1)


本文出自 “506554897” 博客,請務必保留此出處http://506554897.blog.51cto.com/2823970/1944938

python集合