Python3中六種標準數據類型的簡單說明和理解

做者:心葉
時間:2018-04-21 09:28python

Python 中的變量不須要聲明。每一個變量在使用前都必須賦值,變量賦值之後該變量纔會被建立。數組

Python3 中有六個標準的數據類型:Number(數字) + String(字符串) + List(列表) + Tuple(元組) + Sets(集合) + Dictionary(字典)。數據結構

Number(數字)

數字類型是顧名思義是用來存儲數值的,須要記住的是,有點和Java的字符串味道差很少,若是改變了數字數據類型的值,將從新分配內存空間。oop

可使用del語句刪除一些數字對象的引用:del var1[,var2[,var3[....,varN]]]]。測試

Python 支持三種不一樣的數值類型:code

1.整型(Int) - 一般被稱爲是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,能夠看成 Long 類型使用,因此 Python3 沒有 Python2 的 Long 類型。orm

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

3.複數( (complex)) - 複數由實數部分和虛數部分構成,能夠用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。索引

數字類型轉換內存

1.int(x) 將x轉換爲一個整數。
2.float(x) 將x轉換到一個浮點數。
3.complex(x) 將x轉換到一個複數,實數部分爲 x,虛數部分爲 0。
4.complex(x, y) 將 x 和 y 轉換到一個複數,實數部分爲 x,虛數部分爲 y。x 和 y 是數字表達式。
額外說明

和別的語言同樣,數字類型支持各類常見的運算,不過python的運算比別的大多數常見語言都更加豐富,此外,還有大量豐富的方法,提供更高效的開發。

String(字符串)

建立字符串

建立字符串可使用單引號、雙引號、三單引號和三雙引號,其中三引號能夠多行定義字符串,有點相似ES6中的反引號。
Python 不支持單字符類型,單字符也在Python也是做爲一個字符串使用。
訪問字符串中的值

和ES同樣,可使用方括號來截圖字符串,例子以下:

val_str='yelloxing'

print(val_str[0]) #y

print(val_str[1:3]) #el

print(val_str[:3]) #yel

print(val_str[:5]) #yello

字符串運算符

除了上面已經說明的方括號,還有一些別的字符串運算,具體查看文檔。

字符串格式化

temp="我叫 %s 今年 %d 歲!" % ('心葉', 7)

print('['+temp+']') #[我叫 心葉 今年 7 歲!]

如上所示,字符串支持格式化,固然,出來上面用到的%s和%d之外,還有一些別的,具體看文檔;是否是感受有點C語言的味道。

額外說明

全部的字符串都是Unicode字符串(針對python3),有不少有用的方法,真的頗有ES和C結合體的味道。

List(列表)

序列是Python中最基本的數據結構。序列中的每一個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。

Python有6個序列的內置類型(列表、元組、字符串、Unicode字符串、buffer對象和xrange對象)。

列表其實相似數組,具體的一些操做就很像字符串(相似ES中數組和字符串的關係)。

常見運算

下面用一個例子來展現一些常見的運算:

val_arr=['Made','in','China']

del val_arr[1]

print(val_arr) #['Made', 'China']

print(len(val_arr)) #2

val_newarr=val_arr+[':information']

print(val_newarr) #['Made', 'China', ':information']

val_arr=val_arr*2

print(val_arr) #['Made', 'China', 'Made', 'China']

print('in' in val_arr) #False

print('Made' in val_arr) #True

for row in val_newarr:

    print(row, end=" - ") #Made - China - :information -
    
print(val_newarr[-1]) #:information

print(val_newarr[1:]) #['China', ':information']

再來看一個有用的例子:

cols=3

rows=2

list_2d = [[0 for col in range(cols)] for row in range(rows)]

print(list_2d) #[[0, 0, 0], [0, 0, 0]]

嵌套列表

使用嵌套列表即在列表裏建立其它列表,例如:

loop_arr=['yelloxing','心葉']

result_arr=[loop_arr,'同級別']

print(result_arr) #[['yelloxing', '心葉'], '同級別']

列表的嵌套就很靈活,此外隨便提一下:和前面說的同樣,也有不少方法提供高效的開發。

Tuple(元組)

元組與列表相似,不一樣之處在於元組的元素不能修改,元組使用小括號,列表使用方括號。

建立
元組中只包含一個元素時,須要在元素後面添加逗號,不然括號會被看成運算符使用

tup1 = ('Google', 'Runoob', 1997, 2000);

tup2 = (1, 2, 3, 4, 5 );

tup3 = "a", "b", "c", "d";


print(tup1) #('Google', 'Runoob', 1997, 2000)

print(tup2) #(1, 2, 3, 4, 5)

print(tup3) #('a', 'b', 'c', 'd')

基本操做

和列表的操做很類似,下面說一個幾天特殊的地方:
1.del能夠刪除某個元組,不過不能夠刪除元組的某個條目。
2.不能夠修改,或許元組會更快,感受的,沒有實際測試。
3.因爲元組不能夠修改,雖然一樣有一些方法,不過和修改相關的方法就沒有了。

Sets(集合)

回想一下數學裏面的集合,合、交、差、補等運算是否是一會兒回想起來了,這裏的集合也有這些方法。

和Java的集合相似,一個無序不重複元素集(與列表和元組不一樣,集合是無序的,也沒法經過數字進行索引)。
更具體的說明,若是必要會在單獨說明。

Dictionary(字典)

字典是另外一種可變容器模型,且可存儲任意類型對象。

字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中,鍵必須是惟一的,但值則沒必要。

和ES中的JSON的差很少,操做也很像,不過區別也很大,內置方法不少,具體仍是同樣,看文檔去。

刪除字典元素

能夠用del刪除一個條目或字典,也能夠用clear()方法清空字典(好比如今有字段dict,就是:dict.clear())。

相關文章
相關標籤/搜索