Python基礎入門(2)- python中的數據類型

python數據類型

  • 什麼是數據類型?

    將數據分類,能有效的被電腦識別

  • 為什麼會有多種數據類型?

    為了適應更多的使用場景,將數據劃分為多種類型,每一種類型都有著各自的特點和使用場景,幫助電腦高效的處理以展示數據

  • python數據類型如圖👇,其中整數和小數統稱為數字類型
  • 如何知道一個變數是什麼數據類型?可以通過python內置函數type,使用方法為 type(已經被賦值的變數名或變數) 

 

  •  同樣可以按照可變和不可變進行劃分,如圖👇:

  • 按照有序,無需分類—>針對存在多個字元的數據類型進行分類

 

數字類型

Python 支援三種不同的數字類型:

  • 整型(int) – 通常被稱為是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,可以當作 Long 類型使用,所以 Python3 沒有 Python2 的 Long 類型。布爾(bool)是整型的子類型

  • 浮點型(float) – 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)

  • 複數( (complex)) – 複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。

聲明數字類型

#整型(int)
num1=10
num2=int(10)

#浮點型(float)
num3=3.14
num4=float(3.14)

#複數(complex)
num5=3+4j
num6=comple(3+4)

 


 數字運算

Python 解釋器可以作為一個簡單的計算器,您可以在解釋器里輸入一個表達式,它將輸出表達式的值。

表達式的語法很直白: +, -, * 和 /, 和其它語言(如Pascal或C)里一樣。例如:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5  # 總是返回一個浮點數
1.6 

注意:在不同的機器上浮點運算的結果可能會不一樣。

在整數除法中,除法 / 總是返回一個浮點數,如果只想得到整數的結果,丟棄可能的分數部分,可以使用運算符 // :

>>> 17 / 3  # 整數除法返回浮點型
5.666666666666667
>>>
>>> 17 // 3  # 整數除法返迴向下取整後的結果
5
>>> 17 % 3  # %操作符返回除法的餘數
2
>>> 5 * 3 + 2 
17

注意:// 得到的並不一定是整數類型的數,它與分母分子的數據類型有關係,有一個是浮點型,結果必是浮點型。

>>> 7//2
3
>>> 7.0//2
3.0
>>> 7//2.0
3.0
>>>

Python 可以使用 ** 操作來進行冪運算:

>>> 5 ** 2  # 5 的平方
25
>>> 2 ** 7  # 2的7次方
128

變數在使用前必須先”定義”(即賦予變數一個值),否則會出現錯誤:

>>> n   # 嘗試訪問一個未定義的變數
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

不同類型的數混合運算時會將整數轉換為浮點數:

>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5

在交互模式中,最後被輸出的表達式結果被賦值給變數 _ 。例如:

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

此處, 變數應被用戶視為只讀變數

 


數學函數

函數 返回值 ( 描述 )
abs(x) 返回數字的絕對值,如abs(-10) 返回 10
ceil(x) 返回數字的上入整數,如math.ceil(4.1) 返回 5

cmp(x, y)

如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已廢棄,使用 (x>y)-(x<y) 替換
exp(x) 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回數字的絕對值,如math.fabs(-10) 返回10.0
floor(x) 返回數字的下舍整數,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10為基數的x的對數,如math.log10(100)返回 2.0
max(x1, x2,…) 返回給定參數的最大值,參數可以為序列。
min(x1, x2,…) 返回給定參數的最小值,參數可以為序列。
modf(x) 返回x的整數部分與小數部分,兩部分的數值符號與x相同,整數部分以浮點型表示。
pow(x, y) x**y 運算後的值。
round(x [,n])

返回浮點數 x 的四捨五入值,如給出 n 值,則代表舍入到小數點後的位數。

其實準確的說是保留值將保留到離上一位更近的一端。

sqrt(x) 返回數字x的平方根。

 


隨機數函數

隨機數可以用於數學,遊戲,安全等領域中,還經常被嵌入到演算法中,用以提高演算法效率,並提高程式的安全性。

Python包含以下常用隨機數函數:

函數 描述
choice(seq) 從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數。
randrange ([start,] stop [,step]) 從指定範圍內,按指定基數遞增的集合中獲取一個隨機數,基數默認值為 1
random() 隨機生成下一個實數,它在[0,1)範圍內。
seed([x]) 改變隨機數生成器的種子seed。如果你不了解其原理,你不必特別去設定seed,Python會幫你選擇seed。
shuffle(lst) 將序列的所有元素隨機排序
uniform(x, y) 隨機生成下一個實數,它在[x,y]範圍內。

 


三角函數

Python包括以下三角函數:

函數 描述
acos(x) 返回x的反餘弦弧度值。
asin(x) 返回x的反正弦弧度值。
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回給定的 X 及 Y 坐標值的反正切值。
cos(x) 返回x的弧度的餘弦值。
hypot(x, y) 返回歐幾里德範數 sqrt(x*x + y*y)。
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 將弧度轉換為角度,如degrees(math.pi/2) , 返回90.0
radians(x) 將角度轉換為弧度

 


數學常量

常量 描述
pi 數學常量 pi(圓周率,一般以π來表示)
e 數學常量 e,e即自然常數(自然常數)。

 

字元串類型

  • 用 『』或 “”包裹的資訊 就是字元串
  • 字元串中可以包含任意字元:如字母,數字,符號,且沒有先後順序
  • 在python中,使用str 來代表字元串類型,並且通過該函數可以定義字元串
  • 字元串不可改變!通過內置函數id,我們會發現,給變數重新換一個值後,變數名是沒有變,但是在這個變數在記憶體中的地址已經變了 id(重新賦值後的變數) 
  • 通過內置函數len可以返回字元串的長度 len(字元串/變數名) 

聲明字元串

#聲明字元串
name1=str('Hello')
name2='world'
name3="你好"
name4='''中國''' #支援回車換行輸入(顯示)文本
name5="""台灣是中國的""" #支援回車換行輸入(顯示)文本

 


 

訪問(截取)字元串中的值

#!/usr/bin/python
 
var1 = 'Hello World!'
var2 = "Python Gelaotou"
 
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])

以上實例執行結果:

var1[0]:  H
var2[1:5]:  ytho

 


 字元串連接

多個字元串或者字元串類型的變數可以通過+號進行拼接

# coding:utf-8

name='張三'
local='中國'

man=name+local
print(man)
print('李四'+'北京')
print(name,local)

以上實例執行結果:

張三中國
李四北京

 


 轉義字元

在需要在字元中使用特殊字元時,python 用反斜杠 \ 轉義字元。如下表:

轉義字元 描述
\(在行尾時) 續行符
\\ 反斜杠符號
\’ 單引號
\” 雙引號
\a 響鈴
\b 退格(Backspace)
\e 轉義
\000
\n 換行
\v 縱向製表符
\t 橫向製表符
\r 回車
\f 換頁
\oyy 八進位數,y 代表 0~7 的字元,例如:\012 代表換行。
\xyy 十六進位數,以 \x 開頭,yy代表的字元,例如:\x0a代表換行
\other 其它的字元以普通格式輸出

 


字元串運算符

下表實例變數 a 值為字元串 “Hello”,b 變數值為 “Python”:

操作符 描述 實例
+ 字元串連接
>>>a + b HelloPython
* 重複輸出字元串
>>>a * 2 HelloHello
[] 通過索引獲取字元串中字元
>>>a[1] e
[ : ] 截取字元串中的一部分
>>>a[1:4] ell
in 成員運算符 – 如果字元串中包含給定的字元返回 True
>>>H in a True
not in 成員運算符 – 如果字元串中不包含給定的字元返回 True
>>>M not in a True
r/R 原始字元串 – 原始字元串:所有的字元串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。 原始字元串除在字元串的第一個引號前加上字母”r”(可以大小寫)以外,與普通字元串有著幾乎完全相同的語法。
>>>print r\n \n >>> print R\n \n

 

布爾類型與空類型

布爾類型

  • 定義:真假的判斷
#布爾類型定義
name_true=bool(True)
name_false=bool(False)
#或者
name_true=True
name_false=False
  • 固定值:True—>真;False—>假
  • 布爾類型和數字、字元串的關係:
    • int 0 —>False;非0 —>True
    • float 0.0 —>False;非0.0 —>True
    • str “”(空字元串) —>False;非空字元串—>True

空類型

  • 定義:不屬於任何數據類型

#空類型定義
name_false=bool(False)
  • 固定值:None
  • 空類型屬於False的範疇
  • 如果不確定類型的時候,可以用空類型

 

列表類型

  •  列表就是隊列
  • 它是各種數據類型的集合,也是一種數據結構
  • 列表是一種有序,且內容可重複的集合類型
  • 列表中的每個值都有對應的位置值,稱之為索引,第一個索引是 0,第二個索引是 1,依此類推
  • 內置函數max(取最大值)和min(取最小值),在列表中使用的時候,列表中的元素不能是多種類型,如果類型不統一,則會報錯
  • 空類型的列表雖然都是None,但是列表是有長度的,非空,所以空類型列表的布爾值為True

聲明列表

#聲明列表
names = list(['name1', 'name2'])
names = ['name1', 'name2']

#常見列表類型
str_array = ['dewei', 'xiaomi', ' ']  #字元串類型的列表,空格的字元串不是空字元串。

int_array = [1, 2, 3, 212]  #整型列表

float_array = [1.2, 2.3, 2.25, 0.0, 0.2220]  #浮點類型的列表

bool_array = [True, False, False, True]  #布爾類型的列表

none_array = [None, None, None]   #空類型的列表

list_array = [[1, 2, 3], [1.2, 3.1]] #列表中嵌套列表

mix_array = ['dewei', 1, 3.21, None, True] #混合列表

 


訪問列表中的值

與字元串的索引一樣,列表索引從 0 開始,第二個索引是 1,依此類推。

通過索引列表可以進行截取、組合等操作。

# coding:utf-8

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )

以上實例輸出結果:

red
green
blue

索引也可以從尾部開始,最後一個元素的索引為 -1,往前一位為 -2,以此類推。

# coding:utf-8

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[-1] )
print( list[-2] )
print( list[-3] )

以上實例輸出結果:

black
white
yellow

使用下標索引來訪問列表中的值,同樣你也可以使用方括弧 [] 的形式截取字元,如下所示:

# coding:utf-8

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])

以上實例輸出結果:

[10, 20, 30, 40]

使用負數索引值截取:

# coding:utf-8
 
list = ['Google', 'Gelaotou', "Zhihu", "Taobao", "Wiki"]
 
# 讀取第二位
print ("list[1]: ", list[1])
# 從第二位開始(包含)截取到倒數第二位(不包含)
print ("list[1:-2]: ", list[1:-2])

以上實例輸出結果:

list[1]:  Gelaotou
list[1:-2]:  ['Gelaotou', 'Zhihu']

 


更新列表

可以對列表的數據項進行修改或更新,也可以使用 append() 方法來添加列表項,如下所示:

# coding:utf-8
 
list = ['Google', 'Gelaotou', 1997, 2000]
 
print ("第三個元素為 : ", list[2])
list[2] = 2001
print ("更新後的第三個元素為 : ", list[2])
 
list1 = ['Google', 'Gelaotou', 'Taobao']
list1.append('Baidu')
print ("更新後的列表 : ", list1)

以上實例輸出結果:

第三個元素為 :  1997
更新後的第三個元素為 :  2001
更新後的列表 :  ['Google', 'Gelaotou', 'Taobao', 'Baidu']

 


刪除列表元素

可以使用 del 語句來刪除列表的的元素,如下實例:

# coding:utf-8
 
list = ['Google', 'Gelaotou', 1997, 2000]
 
print ("原始列表 : ", list)
del list[2]
print ("刪除第三個元素 : ", list)

以上實例輸出結果:

原始列表 :  ['Google', 'Gelaotou', 1997, 2000]
刪除第三個元素 :  ['Google', 'Gelaotou', 2000]

 


列表腳本操作符

列表對 + 和 * 的操作符與字元串相似。+ 號用於組合列表,* 號用於重複列表。

如下所示:

Python 表達式 結果 描述
len([1, 2, 3]) 3 長度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 組合
[‘Hi!’] * 4 [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] 重複
3 in [1, 2, 3] True 元素是否存在於列表中
for x in [1, 2, 3]: print(x, end=” “) 1 2 3 迭代

 


列表截取與拼接

Python的列表截取與字元串操作類型,如下所示:

L=['Google', 'Gelaotou', 'Taobao']

操作:

Python 表達式 結果 描述
L[2] ‘Taobao’ 讀取第三個元素
L[-2] ‘Gelaotou’ 從右側開始讀取倒數第二個元素: count from the right
L[1:] [‘Gelaotou’, ‘Taobao’] 輸出從第二個元素開始後的所有元素
>>>L=['Google', 'Gelaotou', 'Taobao']
>>> L[2]
'Taobao'
>>> L[-2]
'Gelaotou'
>>> L[1:]
['Gelaotou', 'Taobao']
>>>

列表還支援拼接操作:

>>>squares = [1, 4, 9, 16, 25]
>>> squares += [36, 49, 64, 81, 100]
>>> squares
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>>

嵌套列表

使用嵌套列表即在列表裡創建其它列表,例如:

>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

 

元組類型

初識元組

  • 什麼是元組:元組與列表一樣,都是一種可以存儲多種數據類型的隊列;並且元組與列表一樣是一個無限制長度的數據結構
  • 元組也是一個有序的,且元素可以重複的集合
  • 在Python中,tuple代表著元組這種類型,也可以定義一個元組
  • 元組創建很簡單,只需要在括弧中添加元素,並使用逗號隔開即可
  • 內置函數max(取最大值)和min(取最小值),在元組中使用的時候,元組中的元素不能是多種類型,如果類型不統一,則會報錯

元組和列表的區別

  • Python的元組與列表類似,不同之處在於元組的元素不能修改,列表元素可以修改
  • 元組使用小括弧 ( ),列表使用方括弧 [ ]
  • 元組比列表佔用資源更小

 聲明元組

#聲明元組
tup0= tuple('xiaomi', 'sky') tup1 = ('Google', 'Gelaotou', 1997, 2000) tup2 = (1, 2, 3, 4, 5 ) tup3 = "a", "b", "c", "d" # 不需要括弧也可以 type(tup3) #<class 'tuple'>

創建空元組

tup1 = ()

元組中只包含一個元素時,需要在元素後面添加逗號 , ,否則括弧會被當作運算符使用:

>>> tup1 = (50)
>>> type(tup1)     # 不加逗號,類型為整型
<class 'int'>

>>> tup1 = (50,)
>>> type(tup1)     # 加上逗號,類型為元組
<class 'tuple'>

 


訪問元組

元組中的元素值是不允許修改的,但我們可以對元組進行連接組合,如下實例:

# coding:utf-8
 
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
 
# 以下修改元組元素操作是非法的。
# tup1[0] = 100
 
# 創建一個新的元組
tup3 = tup1 + tup2
print (tup3)

以上實例輸出結果:

(12, 34.56, 'abc', 'xyz')

 


刪除元組

元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個元組,如下實例:

# coding:utf-8
 
tup = ('Google', 'Gelaotou', 1997, 2000)
 
print (tup)
del tup
print ("刪除後的元組 tup : ")
print (tup)

以上實例元組被刪除後,輸出變數會有異常資訊,輸出如下所示:

刪除後的元組 tup : 
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print (tup)
NameError: name 'tup' is not defined

 


元組運算符

與字元串一樣,元組之間可以使用 + 號和 * 號進行運算。這就意味著他們可以組合和複製,運算後會生成一個新的元組。

Python 表達式 結果 描述
len((1, 2, 3)) 3 計算元素個數
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 連接
(‘Hi!’,) * 4 (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) 複製
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print (x,) 1 2 3 迭代

 


元組索引,截取

因為元組也是一個序列,所以我們可以訪問元組中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

元組:

tup = ('Google', 'Gelaotou', 'Taobao', 'Wiki', 'Weibo','Weixin')
Python 表達式 結果 描述
tup[1] ‘Gelaotou’ 讀取第二個元素
tup[-2] ‘Weibo’ 反向讀取,讀取倒數第二個元素
tup[1:] (‘Gelaotou’, ‘Taobao’, ‘Wiki’, ‘Weibo’, ‘Weixin’) 截取元素,從第二個開始後的所有元素。
tup[1:4] (‘Gelaotou’, ‘Taobao’, ‘Wiki’) 截取元素,從第二個開始到第四個元素(索引為 3)。

 


元組內置函數

Python元組包含了以下內置函數

序號 方法及描述 實例
1 len(tuple)
計算元組元素個數。
>>> tuple1 = ('Google', 'Gelaotou', 'Taobao')
>>> len(tuple1)
3
>>>
2 max(tuple)
返回元組中元素最大值。
>>> tuple2 = ('5', '4', '8')
>>> max(tuple2)
'8'
>>>
3 min(tuple)
返回元組中元素最小值。
>>> tuple2 = ('5', '4', '8')
>>> min(tuple2)
'4'
>>>
4 tuple(iterable)
將可迭代系列轉換為元組。
>>> list1= ['Google', 'Taobao', 'Gelaotou', 'Baidu'] 
>>> tuple1=tuple(list1)
>>> tuple1
('Google', 'Taobao', 'Gelaotou', 'Baidu')

 


關於元組是不可變的

所謂元組的不可變指的是元組所指向的記憶體中的內容不可變。

>>> tup = ('a', 'b', 'c', 'd', 'e', 'f')
>>> tup[0] = 'g'     # 不支援修改元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> id(tup)     # 查看記憶體地址
4440687904
>>> tup = (1,2,3)
>>> id(tup)
4441088800    # 記憶體地址不一樣了

從以上實例可以看出,重新賦值的元組 tup,綁定到新的對象了,不是修改了原來的對象。

 

字典類型

字典

  • 字典是由多個鍵key及其對應的值value所組成的一種數據類型

  • 在Python中,dict用來代表字典,並且可以創建一個字典

  • 在Python中,通過{}將一個個key與value存入字典中

  • 字典中每一個key一定是唯一的

  • 內置函數
    • in可以判斷key是否存在

    • max/min可以判斷key的最大/小值

    • len()可以使用

    • 空字典的bool為False

字典支援的數據類型

  • key支援字元串、數字和元祖,但是不支援列表

  • value支援python所有的數據類型

聲明字典

emptyDict = {}
#或者
emptyDict=dict()

print("Length:", len(emptyDict))
print(type(emptyDict))
print(bool(emptyDict))

以上實例輸出結果:

Length: 0
<class 'dict'>
False

 


訪問字典里的值

# coding:utf-8
 
dict = {'Name': 'Student', 'Age': 7, 'Class': 'First'}
 
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

 


修改字典

向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對如下實例:

# coding:utf-8
 
dict = {'Name': 'Student', 'Age': 7, 'Class': 'First'}
 
dict['Age'] = 8               # 更新 Age
dict['School'] = "家裡蹲"      # 添加資訊
 
 
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

 


刪除字典元素

能刪單一的元素也能清空字典,清空只需一項操作。

顯示刪除一個字典用del命令,如下實例:

# coding:utf-8
 
dict = {'Name': 'Student', 'Age': 7, 'Class': 'First'}
 
del dict['Name']     # 刪除鍵 'Name',相當於刪除了Name和Student這個鍵值對
dict.clear()         # 清空字典
del dict             # 刪除字典
 
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])  

 


字典鍵的特性

  • 不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,後一個值會被記住。相當於跟新了鍵的value值
  • 鍵的數據類型不能使用列表;數字,字元串或元組都可以
  • 值的類型支援python所有的數據類型

 

集合類型

  • 集合(set)是一個無序的不重複元素序列。
  • 可以使用大括弧 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典。

集合聲明

>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket)                      # 這裡演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 快速判斷元素是否在集合內 True >>> 'crabgrass' in basket False >>> # 下面展示兩個集合間的運算. ... >>> a = set('abracadabra') >>> b = set('alacazam') >>> a {'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素 {'r', 'd', 'b'}
>>> a | b # 集合a或b中包含的所有元素 {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 集合a和b中都包含了的元素 {'a', 'c'}
>>> a ^ b # 不同時包含於a和b的元素 {'r', 'd', 'b', 'm', 'z', 'l'}

 


集合添加元素

將元素 x 添加到集合 s 中,如果元素已存在,則不進行任何操作 s.add( x )

thisset = set(("a", "b", "c"))
thisset.add("d")
print(thisset)  #{'a', 'b', 'c', 'd'}

還有一個方法,也可以添加元素,且參數可以是列表,元組,字典等,語法格式 s.update( x )

thisset = set(("a", "c", "c"))
thisset.update({1,3})
print(thisset)    #{1, 3, 'a', 'c'}

thisset.update([1,4],[5,6])  
print(thisset)    #{1, 3, 4, 5, 6, 'a', 'c'}

 


集合移除元素

將元素 x 從集合 s 中移除,如果元素不存在,則會發生錯誤;語法格式 s.remove( x )

thisset = set(("a", "b", "c"))
thisset.remove("c")
print(thisset)    #{'a', 'b'}

thisset.remove("d")   # 不存在會發生錯誤

"""
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Facebook'
"""

此外還有一個方法也是移除集合中的元素,且如果元素不存在,不會發生錯誤;語法格式 s.discard( x )

thisset = set(("a", "b", "c"))
thisset.discard("d")  # 不存在不會發生錯誤
print(thisset)       #{'a', 'b', 'c'}

我們也可以設置隨機刪除集合中的一個元素,語法格式 s.pop()

thisset = set(("b", "a", "c", "d"))
x = thisset.pop()

print(x)  #a

多次執行測試結果都不一樣。set 集合的 pop 方法會對集合進行無序的排列,然後將這個無序排列集合的左面第一個元素進行刪除。

 


計算集合元素個數

語法格式 len(s)

thisset = set(("a", "b", "c"))
len(thisset)    #3

 


清空集合

語法格式 s.clear()

thisset = set(("a", "b", "c"))
thisset.clear()
print(thisset) #結果為set()

如果我想要把這個集合刪掉,只需要刪除集合變數即可 del 集合變數

a = set(("a", "b", "c"))
del a
print(a)

"""
Traceback (most recent call last):
  File 
    print(a)
NameError: name 'a' is not defined

"""

 


判斷元素是否在集合中存在

判斷元素 x 是否在集合 s 中,存在返回 True,不存在返回 False;語法格式 x in s

thisset = set(("a", "b", "c"))
"a" in thisset       #True
"d" in thisset    #False

 

數據類型常用內置函數

具體詳細見://www.runoob.com/python3/python3-built-in-functions.html

  • type:返回變數/對象類型
  • id:返回變數/對象記憶體地址
  • max:返回數據中最大的成員;(中文符號 > 字母 > 數字 > 英文符號)
  • min:返回數據中最小的成員;(中文符號 > 字母 > 數字 > 英文符號)