程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python set集合

編輯:Python

文章目錄

  • Python set集合
    • 一,Python創建set集合
      • 1) 使用 {} 創建
      • 2) set()函數創建集合
    • 二,Python訪問set集合元素
    • 三,Python刪除set集合


Python set集合

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創建set集合

Python 提供了 2 種創建 set 集合的方法,分別是使用 {} 創建和使用 set() 函數將列表、元組等類型數據轉換為集合。

1) 使用 {} 創建

在 Python 中,創建 set 集合可以像列表、元素和字典一樣,直接將集合賦值給變量,從而實現創建集合的目的,其語法格式如下:

setname = {element1,element2,…,elementn}
其中,setname 表示集合的名稱,起名時既要符合 Python 命名規范,也要避免與 Python 內置函數重名。

舉個例子:

a = {
1,'c',1,(1,2,3),'c'}
print(a)

運行結果為:

{1, ‘c’, (1, 2, 3)}

2) set()函數創建集合

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訪問set集合元素

由於集合中的元素是無序的,因此無法向列表那樣使用下標訪問元素。Python 中,訪問集合元素最常用的方法是使用循環結構,將集合中的數據逐一讀取出來。

例如:

a = {
1,'c',1,(1,2,3),'c'}
for ele in a:
print(ele,end=' ')

運行結果為:

1 c (1, 2, 3)

由於目前尚未學習循環結構,以上代碼初學者只需初步了解,後續學習循環結構後自然會明白。

三,Python刪除set集合

和其他序列類型一樣,手動函數集合類型,也可以使用 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. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved