1. 程式人生 > >Python的數據類型與數據結構

Python的數據類型與數據結構

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有以下幾個特點:

  1. 查找和插入的速度極快,不會隨著key的增加而變慢;
  2. 需要占用大量的內存,內存浪費多。

而list相反:

  1. 查找和插入的時間隨著元素的增加而增加;
  2. 占用空間小,浪費內存很少。

所以,dict是用空間來換取時間的一種方法。

dict可以用在需要高速查找的很多地方,在Python代碼中幾乎無處不在,正確使用dict非常重要,需要牢記的第一條就是dict的key必須是不可變對象

“總結引用的廖雪峰老師的博客”

Python的數據類型與數據結構