tft每日頭條

 > 生活

 > python集合類型

python集合類型

生活 更新时间:2024-11-09 11:23:39

一、集合(set)類型的含義:

Set是一個無序不重複元素集,與列表和元組不同,集合是無序的,無法通過數字進行索引。

注意:下面所舉例子在Python3.6,IDE為pycharm2016.1中通過。

創建集合:用set()函數,或直接賦值。

例子:

x=set('Nike MM')

y=set(['w','a','m','a'])

print(x)

print(y)

輸出:

{'M', 'N', 'e', 'k', ' ', 'i'}

{'w', 'm', 'a'}

可以看到,在輸出中,是用一對{}号包住,裡面重複的元素被去除。

再看一個例子:

s={'11','22','33'}

print(s)

print(type(s))

s={}

print(type(s))

輸出:

{'33', '11', '22'}

<class 'set'>

<class 'dict'>

在定義不,不能用s={},這關創建的實際上是一個字典類型。

二、有關集合的操作:

1.增加操作

例子:

a=set('python')

a.add('why')

print(a)

b=set('python')

b.update('why')

print(b)

輸出:

{'n', 'p', 'y', 'h', 'o', 't', 'why'}

{'n', 'p', 'y', 'h', 'o', 'w', 't'}

可能看到:add是單個元素的添加,并沒有把元素再分拆為單個字符。Update是批量的增加,增加的元素如果是一個字符串(實際上,在Python中字符串也是一個系列),是作為一個系列增加的。在輸出結果中,兩個函數都是無序的,并且無重複,也非添加到尾部。

2.删除操作(remove,discard,pop)

例子1:

a=set('abcdefghijk')

a.remove('a')

print(a)

a.remove('w')

print(a)

輸出 :

Traceback (most recent call last):

{'h', 'k', 'e', 'd', 'g', 'c', 'f', 'i', 'b', 'j'}

File "D:/python/temp3.py", line 4, in <module>

a.remove('w')

KeyError: 'w'

例子2:

a=set('abcdefghijk')

a.discard('a')

print(a)

a.discard('w')

print(a)

輸出:

{'f', 'h', 'd', 'e', 'b', 'k', 'i', 'j', 'c', 'g'}

{'f', 'h', 'd', 'e', 'b', 'k', 'i', 'j', 'c', 'g'}

例子3:

a=set('abcdefghijk')

b=a.pop()

print(a)

print(b,type(b))

輸出:

{'k', 'd', 'h', 'c', 'b', 'j', 'g', 'i', 'e', 'f'}

a <class 'str'>

從以上例子可以看到,remove方法删除指定無素,如果要删除的元素的不在集合中,則報錯;discard方法删除指定元素,如果要删除物元素不在集合中,則不報錯,pop方法删除任意元素,并可将這個元素賦值給一個變量,但集合并沒有把這個元素移除。

3.清空(clear)

例子:

a=set('abcdefghijk')

a.clear()

print(a)

輸出:

set()

4.交集&,并集|,差集-,對稱差集^,子集(被包含)<=,父集(包含)>=

例子:

a=set(['a','b','c','d','e','f'])

b=set(('d','e','f','g','h','i'))

d=set('def')

print('交集:',a.intersection(b))

print('交集:',a & b)

print('并集:',a.union(b))

print('并集:',a | b)

print('差集:',a.difference(b))

print('差集:',a-b)

#對稱差集:

#把兩個集合中相同的元素去掉,然後

#兩個集合中剩下的元素組成一個新的集合

print('對稱差集:',a.symmetric_difference(b) )

print('對稱差集:',a ^ b )

print('子集:',a.issubset(d) )

print('子集:',a<=d )

print('父集:',a.issuperset(d) )

print('父集:',a>=d )

輸出:

交集: {'f', 'e', 'd'}

交集: {'f', 'e', 'd'}

并集: {'c', 'e', 'd', 'b', 'f', 'a', 'g', 'i', 'h'}

并集: {'c', 'e', 'd', 'b', 'f', 'a', 'g', 'i', 'h'}

差集: {'a', 'c', 'b'}

差集: {'a', 'c', 'b'}

對稱差集: {'a', 'c', 'g', 'b', 'i', 'h'}

對稱差集: {'a', 'c', 'g', 'b', 'i', 'h'}

子集: False

子集: False

父集: True

父集: True

5.集合的其它一些操作

a=set(['a','b','c','d','e','f'])

b=set(('d','e','f','g','h','i'))

d=set('def')

#如果a和d沒有交集,返回True,有則返回False

print(a.isdisjoint(d) ) 輸出:False

print(a<d) 輸出:False

print(a>d) 輸出:True

print(a!=b) 輸出:True

print(a.copy()) 輸出:{'f', 'e', 'b', 'a', 'd', 'c'} #複制一個集合

print('a' in a) 輸出:True #測試元素是否在集合中

print('a' not in a) 輸出:False #測試元素是否不在集合中

print(len(a)) 輸出:6 #返回集合的長度

6.集合計算:

(1)

#從a中減去a和b的交集,即從a集合中删除和b集合中相同的元素

a.difference_update(b) 即等于:a=a-b 或a-=b

print(a) 輸出:{'a', 'b', 'c'}

(2)

#修改a集合,僅僅保持a與b的交集,如果沒有交集,則a變為空集合set()

a.intersection_update(b) 即等于:a=a&b 或a&=b

print(a )

輸出:{'e', 'd', 'f'}

(3)

#a集合中增加‘在b集合中除去a和b交集剩下的元素’

a.symmetric_difference_update(b) 即等于:a=a^b 或 a^=b

print(a) 輸出:{'i', 'g', 'a', 'c', 'b', 'h'}

python集合類型(Python中集合set類型的詳細解釋及操作)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved