python內建序列型別之集合型別詳解
1.集合概念
具有某種特定性質的事物的總體,集合裡的東西叫作元素。python中,集合(set)是乙個無序不重複元素的序列。
2.集合的建立
可以使用大括號 或者 set() 函式建立集合,注意:建立乙個空集合必須用set() 而不是 ,因為 是用來建立乙個空字典。
#第一種建立
parame=
第二種建立set(value)
注意:集合可以有任意數量的元素,它們可以是不同的型別(例如:數字、元組、字串等)。但是,集合不能有可變元素(例如:列表、集合或字典)。也就是說set()是無序的集合,不能有重複的元素,也不能排序。
3.集合的操作
1.增刪
1.將元素 x 新增到集合 s 中,元素可以是列表,元組,字典等。由於集合不能有可變元素,所以新增列表等到集合,會進行拆解。
2.將元素 x 從集合 s 中移除,有兩種方法,用remove()方法,如果元素不存在,則會發生錯誤。用discard()方法,如果元素不存在,不會發生錯誤。
#新增元素 s.add( x )
thisset = set(("cdx", "red", "molly"))
thisset.add("cool")print(thisset)>>>
thisset= set(("cdx", "red", "molly"))thisset.update()print(thisset)>>>
thisset.update([1,4],[5,6])
print(thisset)>>>
#刪除元素
#方法1s.remove(x )thisset= set(("cdx", "red", "molly"))thisset.remove("cdx")print(thisset)>>>方法2 s.discard( x )
s = s.discard('w') # 去掉乙個不存在的元素,不會發生異常
print(s)
>>>
2.計算集合元素個數
#語法格式 len(s)
thisset = set(("cdx", "red", "molly"))
print(len(thisset))
注意(len()函式的作用為返回字串、列表、字典、元組等長度)
3.清空集合
#語法格式 s.clear()
thisset = set(("cdx", "red", "molly"))
thisset.clear()
print(thisset) >>> set()
4.判斷元素是否在集合中存在
#語法格式 x in s
thisset = set(("cdx", "red", "molly"))print("cdx" inthisset)>>>true
5.集合的特性
1.無序性(也就是說,集合不支援索引(按照下標查詢))
s = set('python')print(s)
s[0]#不支援索引,會報錯
typeerror: 'set' object does not support indexing
2.互異性(乙個集合中,任何兩個元素都認為是不相同的,即每個元素只能出現一次)
s = set('hello')print(s)>>>
3.確定性(給定乙個集合,任給乙個元素,該元素或者屬於或者不屬於該集合,二者必居其一,不允許有模稜兩可的情況出現)
s = set("hello")print('l' ins)>>>trueprint('p' not ins)>>>true
6.集合的函式和方法
集合的方法:
add()
將元素新增到集合中
clear()
刪除集合中的所有元素
copy()
返回集合的淺拷貝
difference()
將兩個或多個集合的差集作為乙個新集合返回
difference_update()
從這個集合中刪除另乙個集合的所有元素
discard()
刪除集合中的乙個元素(如果元素不存在,則不執行任何操作)
intersection()
將兩個集合的交集作為乙個新集合返回
intersection_update()
用自己和另乙個的交集來更新這個集合
isdisjoint()
如果兩個集合有乙個空交集,返回 true
issubset()
如果另乙個集合包含這個集合,返回 true
issuperset()
如果這個集合包含另乙個集合,返回 true
pop()
刪除並返回任意的集合元素(如果集合為空,會引發 keyerror)
remove()
刪除集合中的乙個元素(如果元素不存在,會引發 keyerror)
symmetric_difference()
將兩個集合的對稱差作為乙個新集合返回
symmetric_difference_update()
用自己和另乙個的對稱差來更新這個集合
union()
將集合的並集作為乙個新集合返回
update()
用自己和另乙個的並集來更新這個集合
集合的內建函式:
函式描述
all()
如果集合中的所有元素都是 true(或者集合為空),則返回 true。
any()
如果集合中的所有元素都是 true,則返回 true;如果集合為空,則返回 false。
enumerate()
返回乙個列舉物件,其中包含了集合中所有元素的索引和值(配對)。
len()
返回集合的長度(元素個數)
max()
返回集合中的最大項
min()
返回集合中的最小項
sorted()
從集合中的元素返回新的排序列表(不排序集合本身)
sum()
返回集合的所有元素之和
7.集合的補充
1.集合的pop()方法
集合也可以使用 pop() 方法刪除和返回乙個專案。
情況1:當集合是由列表和元組組成時,set.pop()是從左邊第乙個開始刪除元素。
set1 = set([9,4,5,2,6,7,1,8])print(set1)print(set1.pop())print(set1)>>>1
情況2:當集合是字典或者字元集合時,set.pop()是隨機刪除集合中的乙個元素。
s = set('python')print(s.pop() )>>>
"p"2.怎樣將列表或者元組裡的重複元素去掉呢?
當然,當你看完了集合,你應該已經知道了,將他們轉換為集合,就可以利用集合的特性去掉重複。
list1 = [6, 7, 7, 8, 8, 9]print(set(list1))>>>
ps(博主需要休息。。。另外,你已經看完了python的基礎內容,下下更就要進入函式,類等入門內容了。下一更會對這些基礎內容進行總結)
python實用教程 Python語言實用教程
出版說明 前言第1章 python概述 1.1 程式語言簡介 1.2 python語言簡介 1.2.1 python發展歷史 1.2.2 python特點 1.2.3 python應用場合 1.3 安裝python 1.3.2 unix和linux平台安裝python 1.3.3 在windows平...
python大學教程 Python大學實用教程
章 程式語言 1 1.1 程式語言簡史 1 1.2 程式語言分類 4 1.2.1 機器語言 4 1.2.2 組合語言 5 1.2.3 不錯語言 5 1.3 程式簡介 7 1.3.1 程式 翻譯 方式 7 1.3.2 演算法 8 1.3.3 hello world 9 1.4 python概要 10 ...
python實用入門基礎教程
這是乙個適用於有其他程式設計經驗的python初學者需要了解的簡易教程,例如 資料型別,判斷語句 運算子 邏輯運算子 選擇語句 迴圈語句等基礎語法。1.python的主要兩種程式設計方式 支援互動式程式設計和指令碼程式設計 關於何為互動式程式設計 2.python 特殊語法總結 1 python 最...