Python的數據類型與數據結構
阿新 • • 發佈:2017-10-22
out 一是 增加 是否 bar 元素 如果 python代碼 .so
對Python的數據類型與數據結構進行的復習,基本的數據類型與數據結構都已經概況出了。大家可以參考學習。如有有錯誤的地方,希望留言告訴我。
數據類型
Python
數據主要分為:
- 整數型 ;數字的整數
- 浮點型; 數字帶小數
- 字符串; 用 ‘’ 或者 “” 引用的任意文本
- 布爾型;只有
True 和
False
數據結構分為:
- 列表 list
- 元祖 tuple
- 字典 dict
- 集合 set
接下來用代碼詳細解釋數據類型;
python的type()方法可以得數據類型,
例如:
當不確定變量 a 是什麽數據類型的時候,可以通過print(type(a))打印出a 的數據類型
#整數型;可以為正數也可以為負數,也可以為0 a=100 b=0 c=-2 print(a,b,c) 輸出:100 ,0, -2
#浮點型,帶有小數的數值 a=1.2 b=0.12 print(type(a),a) print(type(b),b)
輸出:<class ‘float‘> 1.2 <class ‘float‘> 0.12
#布爾型 a=True b=False print(a,b)
輸出:
True False
#字符串 print("Hello,Python") print(‘H‘) Hello,Python H
布爾值詳解
布爾值可以用 and or not 來進行運算,得到結果也是布爾值
a=True b=False # and 運算 c1=a and a c2= a and b c3= b and b # or 運算 d1=a or a d2= b or b d3= a or b # not 運算 e1= not a e2= not b print(c1,c2,c3) print(d1,d2,d3) print(e1,e2) 輸出: True False False True False True False True
邏輯運算(and,or,not )
and 運算中,代碼中a為真,b為假。 and 運算中如果有一個變量為假,則得到結果就為假。兩個變量為真,得到結果為真;
or 運算中,只要一個運算的變量為真,得到結果則為真。如果兩邊變量都為假,則為假
not 和容易,就是取相反的。例如 a為真(True),則 not a 為假(False)
數據結構
列表-list
list是一種有序的集合,可以隨時添加和刪除其中的元素。
創建列表 用 【】符號
list索引為0開始的,索引0 表示第1個元素,以此類推
切邊活用,可以更好的查詢數據
#創建一個list 列表 L=[1,"hello",True,1.2] print(L)#打印出L列表 print(len(L))#利用len()方法查詢列表的長度 print(L[0],L[1])#根據索引 查詢 列表中的數據,索引是從0 開始的 #切片方法活用 print(L[0:2])# 切片 從索引0 到 1提取list的元素 print(L[1:0])#q切片 從索引1到最後的元素全部提取 print(L[-1])#提取倒數第一個元素 print(L[-3:0])#倒數第三個元素 往後提取 print(L[::2])#切片 步長為2 print(L[::-1])#倒敘 打印出list
[1, ‘hello‘, True, 1.2] 4 1 hello [1, ‘hello‘] [] 1.2 [] [1, True] [1.2, True, ‘hello‘, 1]
增加元素
#創建一個list 列表 """ append方法每次只能在末尾填入一個元素; insert方法可在指定的位置插入一個元素; """ L=[1,"hello",True,1.2] print(L)#打印出L列表 L.append(‘python‘)#在列表的最後插入元素 print(L) L.insert(0,"Love") print(L)
[1, ‘hello‘, True, 1.2] [1, ‘hello‘, True, 1.2, ‘python‘] [‘Love‘, 1, ‘hello‘, True, 1.2, ‘python‘]
刪元素
""" pop方法在不指定參數時默認刪除末尾元素,也可以指定刪除某個位置的元素; remove方法刪除指定的元素值; clear方法清空列表元素; del函數刪除列表對象; """ L.pop()#末尾刪除一個元素 print(L) L.pop(1)#指定一個位置刪除一個元素 print(L) L.remove(True) print(L) L.clear() print(L)
[‘Love‘, 1, ‘hello‘, True, 1.2] [‘Love‘, ‘hello‘, True, 1.2] [‘Love‘, ‘hello‘, 1.2] []
copy方法復制一個物理對象,而非視圖對象; count方法計數; index方法返回索引位置; reverse方法實現元素顛倒; sort方法排序
""" copy方法復制一個物理對象,而非視圖對象; count方法計數; index方法返回索引位置; reverse方法實現元素顛倒; sort方法排序; """ L1=[‘a‘,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘] L2=L1.copy()#復制list print(L2) print(L1.count(‘a‘))#計“a”出現吃次數 print(L1.index(‘b‘))#反為b的索引位子 L1.reverse()#顛倒元素 print(L1) L1.sort()#默認升序排序 print(L1)
[‘a‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘] 2 2 [‘g‘, ‘f‘, ‘e‘, ‘d‘, ‘c‘, ‘b‘, ‘a‘, ‘a‘] [‘a‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘]
元組是不可變的序列,沒有增,刪,改的權限;
只能查詢和使用索引,切片等一些功能
元組最大的好處是可以保證數據的安全。
T=(1,2,‘a‘,‘b‘) print(T) print(T[0]) print(T[0:2]) (1, 2, ‘a‘, ‘b‘) 1 (1, 2)
字典,
字典的創建就不是通過上面的中括號[]和圓括號()方法構建了,
而是通過花括號{}或dict函數來構造鍵-值對。
#創建名字和年齡的字典,名字為鍵,年齡為值 name_age={"da_wang":27,"liu":26,"kong":12} print(name_age) print(name_age["kong"]) #根據key值 從新付給新的數據 name_age["kong"]=27 print(name_age) #要刪除一個key,用pop(key)方法,對應的value也會從dict中刪除: print(name_age.pop("liu")) #要避免key不存在的錯誤,有兩種辦法,一是通過in判斷key是否存在: print("da" in name_age) #通過dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value: print(name_age.get("da_wang"))
{‘da_wang‘: 27, ‘liu‘: 26, ‘kong‘: 12} 12 {‘da_wang‘: 27, ‘liu‘: 26, ‘kong‘: 27} 26 False 27
list比較,dict有以下幾個特點:
- 查找和插入的速度極快,不會隨著key的增加而變慢;
- 需要占用大量的內存,內存浪費多。
而list相反:
- 查找和插入的時間隨著元素的增加而增加;
- 占用空間小,浪費內存很少。
所以,dict是用空間來換取時間的一種方法。
dict可以用在需要高速查找的很多地方,在Python代碼中幾乎無處不在,正確使用dict非常重要,需要牢記的第一條就是dict的key必須是不可變對象。
“總結引用的廖雪峰老師的博客”
Python的數據類型與數據結構