Python 中的集合,和數學中的集合概念一樣,用來保存不重復的元素,即集合中的元素都是唯一的,互不相同。
從形式上看,和字典類似,Python 集合會將所有元素放在一對大括號 {} 中,相鄰元素之間用“,”分隔,如下所示:
{
element1,element2,...,elementn}
其中,elementn 表示集合中的元素,個數沒有限制。
從內容上看,同一集合中,只能存儲不可變的數據類型,包括整形、浮點型、字符串、元組,無法存儲列表、字典、集合這些可變的數據類型,否則 Python 解釋器會拋出 TypeError 錯誤。比如說:
>>> {
{
'a':1}}
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
{
{
'a':1}}
TypeError: unhashable type: 'dict'
>>> {
[1,2,3]}
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
{
[1,2,3]}
TypeError: unhashable type: 'list'
>>> {
{
1,2,3}}
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
{
{
1,2,3}}
TypeError: unhashable type: 'set'
並且需要注意的是,數據必須保證是唯一的,因為集合對於每種數據元素,只會保留一份。例如:
>>> {
1,2,1,(1,2,3),'c','c'}
{
1, 2, 'c', (1, 2, 3)}
由於 Python 中的 set 集合是無序的,所以每次輸出時元素的排序順序可能都不相同。
其實,Python 中有兩種集合類型,一種是 set 類型的集合,另一種是 frozenset 類型的集合,它們唯一的區別是,set 類型集合可以做添加、刪除元素的操作,而 forzenset 類型集合不行。本節先介紹 set 類型集合,後續章節再介紹 forzenset 類型集合。
Python 提供了 2 種創建 set 集合的方法,分別是使用 {} 創建和使用 set() 函數將列表、元組等類型數據轉換為集合。
在 Python 中,創建 set 集合可以像列表、元素和字典一樣,直接將集合賦值給變量,從而實現創建集合的目的,其語法格式如下:
setname = {element1,element2,…,elementn}
其中,setname 表示集合的名稱,起名時既要符合 Python 命名規范,也要避免與 Python 內置函數重名。
舉個例子:
a = {
1,'c',1,(1,2,3),'c'}
print(a)
運行結果為:
{1, ‘c’, (1, 2, 3)}
set() 函數為 Python 的內置函數,其功能是將字符串、列表、元組、range 對象等可迭代對象轉換成集合。該函數的語法格式如下:
setname = set(iteration)
其中,iteration 就表示字符串、列表、元組、range 對象等數據。
例如:
set1 = set("c.biancheng.net")
set2 = set([1,2,3,4,5])
set3 = set((1,2,3,4,5))
print("set1:",set1)
print("set2:",set2)
print("set3:",set3)
運行結果為:
set1: {‘a’, ‘g’, ‘b’, ‘c’, ‘n’, ‘h’, ‘.’, ‘t’, ‘i’, ‘e’}
set2: {1, 2, 3, 4, 5}
set3: {1, 2, 3, 4, 5}
注意,如果要創建空集合,只能使用 set() 函數實現。因為直接使用一對 {},Python 解釋器會將其視為一個空字典。
由於集合中的元素是無序的,因此無法向列表那樣使用下標訪問元素。Python 中,訪問集合元素最常用的方法是使用循環結構,將集合中的數據逐一讀取出來。
例如:
a = {
1,'c',1,(1,2,3),'c'}
for ele in a:
print(ele,end=' ')
運行結果為:
1 c (1, 2, 3)
由於目前尚未學習循環結構,以上代碼初學者只需初步了解,後續學習循環結構後自然會明白。
和其他序列類型一樣,手動函數集合類型,也可以使用 del() 語句,例如:
a = {
1,'c',1,(1,2,3),'c'}
print(a)
del(a)
print(a)
運行結果為:
{1, ‘c’, (1, 2, 3)}
Traceback (most recent call last):
File “C:\Users\mengma\Desktop\1.py”, line 4, in
print(a)
NameError: name ‘a’ is not defined
Python set 集合最常用的操作是向集合中添加、刪除元素,以及集合之間做交集、並集、差集等運算。受到篇幅的限制,這些知識會放到下節進行詳細講解。
文章目錄1、問題描述2、解決方案1、問題描述前些天mysql
Huawei equipment on telnetuser