python时间去掉t_Python的set集合详解
Python 還包含了一個數據類型 —— set (集合)。
集合是一個無序不重復元素的集?;竟δ馨P系測試和消除重復元素。
集合對象還支持 union(聯合),intersection(交),difference(差)和 sysmmetric difference(對稱差集)等數學運算。
創建集合set
大括號或 set() 函數可以用來創建集合?!?/p>
set集合類需要的參數必須是迭代器類型的,如:序列、字典等,然后轉換成無序不重復的元素集。由于集合是不重復的,所以可以對字符串、列表、元組進行去重操作。
1、創建空集合
>>> s=set() >>> s set() >>> s1=set([]) #列表 >>> s1 set() >>> s2=set(()) #元組 >>> s2 set() >>> s3=set({}) #字典 >>> s3 set()注意:想要創建空集合,你必須使用 set() 而不是 {}。后者用于創建空字典,我們在后面介紹的一種數據結構。
2、創建非空集合
即列表,元組,字典不在是空值,舉兩個例子
>>> s1=set([1,2,3,4]) >>> s1 {1, 2, 3, 4}>>> s3=set({'a':2,'b':3,'c':4}) >>> s3 {'c', 'a', 'b'}注:字典轉set集合,需要注意的是,只取了字典的key,相當于將字典中的dict.keys()列表轉成set集合。
集合的操作
1、集合添加
集合的添加有兩種方式,分別是add和update。但是它們在添加元素時是有區別的:
- add()方法
把要傳入的元素作為一個整體添加到集合中,如:
>>> s=set('one') >>> s {'e', 'o', 'n'} >>> s.add('two') >>> s {'e', 'two', 'o', 'n'}- update()方法
是把要傳入的元素拆分成單個字符,存于集合中,并去掉重復的字符。
可以一次添加多個值,如:
>>> s=set('one') >>> s {'e', 'o', 'n'} >>> s.update('two') >>> s {'e', 'n', 't', 'w', 'o'}2、集合刪除
集合的刪除操作使用的方法跟列表是一樣的,使用的也是remove方法。如:
- setVar.remove(element)
setVar :為一個set類型的變量
element :表示要查找并刪除的元素
函數作用:
在集合setVar中查找element元素,如果存在則刪除;如果沒找到,則報錯。
>>> s=set('one') >>> s {'e', 'o', 'n'} >>> s.remove('e') >>> s {'n', 'o'}- setVar.discard(element)
setVar :為一個set類型的變量
element :表示要查找并刪除的元素
函數作用:
在集合setVar中查找element元素,如果存在則刪除;如果沒找到,則什么也不做。
>>> sList set([1, 2, 3, 4, 5]) >>> sList.discard(1) >>> sList set([2, 3, 4, 5])- s.pop()
s:為set類型的變量
函數作用:
刪除并返回set類型的s中的一個不確定的元素,如果為空引發KeyError錯誤。
>>> sList set([2, 3, 4, 5]) >>> sList.pop() 2- s.clear()
s:set類型的變量
函數作用:
清空s集合中的所有元素
>>> sList set([3, 4, 5]) >>> sList.clear() >>> sList set([])3、集合的遍歷
集合的遍歷跟序列的遍歷方法完全一樣。
>>> s=set('one') >>> s {'e', 'o', 'n'} >>> for i in s:print(i) ... ... e o n >>>另一種遍歷方式:
>>> s=set('one') >>> s {'e', 'o', 'n'} >>> for idex,i in enumerate(s):print (idex,i) ... ... 0 e 1 o 2 n >>>變量idex表示集合中元素i的索引。
4、集合其他方法
集合的一些操作符
既然是集合,那就會遵循集合的一些操作方法,如求交集、并集、差集等。
1、交集
Python中求集合的交集使用的符號是“&”,返回連個集合的共同元素的集合,即集合的交集。
>>> st1 = set('python') >>> st1 set(['h', 'o', 'n', 'p', 't', 'y']) >>> st2 = set('htc') >>> st2 set(['h', 'c', 't']) >>> st1 & st2 set(['h', 't'])2、并集(合集)
Python中求集合的并集用的是符號“|”,返回的是兩個集合所有的并去掉重復的元素的集合。
>>> st1 set(['h', 'o', 'n', 'p', 't', 'y']) >>> st3 = set('two') >>> st3 set(['o', 't', 'w']) >>> st1 | st3 set(['p', 't', 'w', 'y', 'h', 'o', 'n'])3、差集
Python中差集使用的符號是減號“-”。
>>> st1 set(['1', '3', '2', '5', '4', '7', '6']) >>> st2 = set('4589') >>> st2 set(['9', '8', '5', '4']) >>> st1 - st2 set(['1', '3', '2', '7', '6'])返回的結果是在集合st1中但不在集合st2中的元素的集合。
4、集合的不同
查看兩個集合的不同之處,使用的difference函數,等價于差集。如:
s1.difference(s3)
這種不同指的是集合s3相對于集合s1,不同的地方,也就是所有在集合s1中,而不再集合s2中的的元素組成的新集合。
>>> s1 set([1, 2, 3, 4, 5]) >>> s2 set([1, 2, 3, 4]) >>> s1.difference(s2) set([5]) >>> s3 set(['1', '8', '9', '5']) >>> s1.difference(s3) set([1, 2, 3, 4, 5]集合的范圍判斷
集合可以使用大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=)來判斷某個集合是否完全包含于另一個集合,也可以使用子父集判斷函數。
定義三個集合s1,s2,s3:
>>> s1=set([1, 2, 3, 4, 5]) >>> s2=set([1, 2, 3, 4]) >>> s3=set(['1', '8', '9', '5'])大于(>)或大于等于(>=)
>>> s1 > s2 True >>> s1 > s3 False >>> s1 >= s2 True表示左邊集合是否完全包含右邊集合,如集合s1是否完全包含集合s2。
小于(<)或 小于等于(<=)
>>> s2 < s1 True >>> s1 < s3 False >>> s3 < s1 False表示左邊的集合是否完全包含于右邊的集合,如集合s1是否完全包含于集合s2。
等于(==)、不等于(!=)
>>> s1 == s2 False >>> s2 == s3 False >>> s1 != s2 True判斷兩個集合是否完全相同。
不可變集合frozenset
Python中還有一種不可改變的集合,那就是frozenset,不像set集合,可以增加刪除集合中的元素,該集合中的內容是不可改變的,類似于字符串、元組。
>>> f = frozenset() >>> f frozenset([]) >>> f = frozenset('asdf') >>> f frozenset(['a', 's', 'd', 'f']) >>> f = frozenset([1,2,3,4]) >>> f frozenset([1, 2, 3, 4]) >>> f = frozenset((1,2,3,4)) >>> f frozenset([1, 2, 3, 4]) >>> f = frozenset({1:2, 'a':2, 'c':3}) >>> f frozenset(['a', 1, 'c'])文源網絡,僅供學習之用,如有侵權,聯系刪除。
我將優質的技術文章和經驗總結都匯集在了我的公眾號【Python圈子】里。
在學習Python的道路上肯定會遇見困難,別慌,我這里有一套學習資料,包含40+本電子書,600+個教學視頻,涉及Python基礎、爬蟲、框架、數據分析、機器學習等,不怕你學不會!還有學習交流群,一起學習進步~
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是默认站点為你收集整理的python时间去掉t_Python的set集合详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4固定在底部_礼堂椅厂家教你如何固定座椅
- 下一篇: 镜像VirtualBox 下安装 Cen