Python資料類型-集合

來源:互聯網
上載者:User

標籤:card   att   int   方法   add   排列   png   span   pre   

0、什麼是集合?

集合是一個無序的,不重複的資料群組合,它的主要作用如下:

去重,把一個列表變成集合,就自動去重了

關係測試,測試兩組資料之前的交集、差集、並集等關係


集合(set):把不同的元素組成一起形成集合,是python基本的資料類型。

集合元素(set elements):組成集合的成員(不可重複)

集合對象是一組無序排列的可雜湊(不可變,類似字典的鍵)的值:集合成員可以做字典的鍵


集合分類:可變集合、不可變集合

可變集合(set):可添加和刪除元素,非可雜湊的,不能作為字典的鍵,也不能做其他集合的元素

不可變集合(frozenset):與上面恰恰相反


li=[[1,2],‘a‘,‘b‘]s =set(li) # TypeError: unhashable type: ‘list‘print(s)


a=set(‘alex li a‘)  #有多個 aprint(a){‘ ‘, ‘l‘, ‘i‘, ‘a‘, ‘x‘, ‘e‘}    # 集合會把重複的去掉,並無序的列印出來b=[‘aaa‘,‘bbb‘,‘aaa‘]s=set(b)print(s){‘aaa‘, ‘bbb‘}      # 列表裡有重複,會把重複的去掉



1、建立集合

由於集合沒有自己的文法格式,只能通過集合的方法 set() 和 frozenset() 建立,或者 {} 來建立

s1 = set(‘alvin‘) s2= frozenset(‘yuan‘)  # 不可變集合s3={1,2,3}print(s1,type(s1))  #{‘l‘, ‘v‘, ‘i‘, ‘a‘, ‘n‘} <class ‘set‘>print(s2,type(s2))  #frozenset({‘n‘, ‘y‘, ‘a‘, ‘u‘}) <class ‘frozenset‘>


2、訪問集合

由於集合本身是無序的,所以不能為集合建立索引或切片操作,只能迴圈遍曆或使用in、not in來訪問或判斷集合元素。

s1 = set(‘alvin‘)print(‘a‘ in s1)print(‘b‘ in s1)#s1[1]  #TypeError: ‘set‘ object does not support indexing for i in s1:    print(i)#    # True# False# v# n# l# i# a



3、更新集合

可使用以下內建方法來更新:

set.add():增

set.remove():刪

set.update():改

注意:只有可變集合才能更新:

# s1 = frozenset(‘alvin‘)# s1.add(0)  #AttributeError: ‘frozenset‘ object has no attribute ‘add‘ s2=set(‘alvin‘)s2.add(‘mm‘)   # ‘mm’ 會作為一個整體存入print(s2)  #{‘mm‘, ‘l‘, ‘n‘, ‘a‘, ‘i‘, ‘v‘} s2.update(‘HO‘)# 添加多個元素,把 HO 拆開,作為單個元素添加進去,如果有重複的,會去重print(s2)  #{‘mm‘, ‘l‘, ‘n‘, ‘a‘, ‘i‘, ‘H‘, ‘O‘, ‘v‘}
s2.update([12,‘alex‘,‘eee‘,‘alvin‘])  # 列表裡面,元素是一個整體,print(s2) # {‘l‘, ‘n‘, ‘alvin‘, ‘a‘, 12, ‘i‘, ‘alex‘, ‘v‘, ‘eee‘} s2.remove(‘l‘)   # 指定刪除,當值不存在時,會報錯print(s2)  #{‘mm‘, ‘n‘, ‘a‘, ‘i‘, ‘H‘, ‘O‘, ‘v‘}s2.discard(‘vvvv‘) # 指定刪除,當值不存在時,不會報錯s2.pop()   # 隨機刪除一個元素s2.clear()  # 清空集合del s2:刪除集合本身



4、集合類型操作符

1 in ,not in:判斷某元素是否在集合內

2 集合等價與不等價(==, !=)

3 子集、超集

4 print(a.isdisjoint(b)),兩個集合沒有任何關聯就返回為真

Python資料類型-集合

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.