PHP工程師學Python資料型別

2022-06-16 16:45:11 字數 4926 閱讀 1200

字串(str)

列表(list)

元組(tup)

字典(dict)

資料操作

python中字串操作基本和php類似,下面介紹一下python中字串的常規操作方法

在php中可以通過索引下標的方式獲取到字串中的某乙個字元,在python中也同樣可以獲取到,如下**所示

#定義字串

teststr = 'tangqingsong'

#通過索引下標獲取字元

print(teststr[1])

#列印結果 a

在python中有乙個非常好用的功能叫做切片,比如當你想獲取字串中第n個字元到第m個字元中的區間字元,使用python的切片實現非常簡單,如下**所示

#定義字串

teststr = 'tangqingsong'

#通過索引下標獲取字元

print(teststr[0:4])

#列印結果 tang

在python中for不僅僅可以迴圈類似於php中的陣列,還可以迴圈字串,如下**所示

teststr = 'tangqingsong'

for value in teststr[0:4]:

print(value)

#列印結果 tang

在python中實現字母大小寫轉換和php的寫法稍有不同,python中操作有點類似於php操作物件的感覺,如下**所示

#定義字串

teststr = 'tqs'

#大寫轉換

astr = teststr.upper()

#小寫轉換

bstr = teststr.lower()

print(astr,bstr)

#列印結果 tqs tqs

接著我們再來看一下怎麼把字串切割與合併,如下**所示

s = 'tang|qing|song'

l = s.split('|')

print(l)

#列印結果 ['tang', 'qing', 'song']

s2 = '|'.join(['tang', 'qing', 'song'])

print(s2)

#列印結果 tang|qing|song

在php中字串首尾過濾通常使用trim()函式過濾,而python中字串首尾過濾的語法有點類似於php操作物件的方式,**如下所示

# 去掉邊界上的內容 strip

s1 = ' tang qing song '

print(s1.strip())

#列印結果 『tang qing song』

如果你想指定刪除某乙個字元,**如下所示

s2 = '《湯青松》'

print(s2.strip('>'))

#列印結果 '《湯青松'

在python中有一種叫做list的資料型別,在php中我們通常稱之為索引陣列

定義list資料方式如下**所示

#定義乙個list資料

lst = ['張三','李四','王五','馬六','田七']

取資料方式和php基本一致,比如想獲取lst裡面的李四,可以這樣獲取

$name = lst[1]
除了正向取資料還可以反著順序取資料,比如你要獲取馬六,你可以這樣寫

$name = lst[-2]
在python中有一種獲取資料非常簡便的方法,叫做切片,比如你想獲取lst中的李四到馬六區間的資料,在php中你得用array_slice函式去擷取,但在python則非常方便,如下**所示

print(lst[1:4])

# 列印結果 ['李四','王五','馬六']

如果你想隔乙個資料取乙個資料,切片還支援設定步長,步長預設為1,也就是說連續取資料,當你設定步長後,會按照指定的步長,如下**所示

print(lst[1:4:2])

# 列印結果 ['李四','馬六']

同樣切片也支援反著取資料,比如你想獲取田七到王五區間的資料,參考**如下

print(lst[-1:-3:-1])

# 列印結果 ['田七','馬六','王五']

也可以使用pop方法彈出最末尾乙個資料,如下**所示

value = lst.pop()
如果你想吧資料清空,也可以使用clear方法,當然你也可以直接將值重新賦值乙個空list,如下**所示

lst.clear()

#或者lst =

在python中需要注意一種引用記憶體位址的特殊情況,如下**所示

# 定義兩個變數

alist = ['張三', '李四', '王五']

blist =

# 在blist中追加alist,此時blist為二維list

#修改alist變數裡面的值

alist[0] = '張三丰'

#列印blist

print(blist)

# 列印結果 [['張三丰', '李四', '王五']]

在上面**中可以看到,已經將乙個變數賦給另外乙個變數,按照常規理解來說,他們是相互獨立的,但實際上並不是;在python中如果存在二維的list,一維裡面往往是記錄乙個記憶體位址,並不是把值完整的複製乙份,這種引用操作python中也稱之為淺拷貝;

在python中有一種資料型別和list非常相似,稱之為元組(tuple);它們最明顯區別就是list定義之後可以修改結構,而元組定義之後不能再次修改,其次是在定義的時候有一點點不同,如下**所示

#定義list資料

lst = ['張三', '李四', '王五']

#定義元組資料

tple ('張三', '李四', '王五')

在取資料的時候同樣支援切片,也同樣支援用索引(下標)方式來取值,唯一的區別就是不能再更改裡面的值,比如說追加資料或者裡面的某乙個資料重新賦值。

在php中我們知道陣列有兩種型別,索引陣列和關聯陣列,而關聯陣列在python中稱之為字典,定義方式和lst區別不大,如下**所示

demo =
在python中定義字典相對php來說比較嚴格,對key有要求,不像php中可以只輸入值而不輸入可以,在python中必須同時輸入key和value。

python中的字典增刪改查和php基本類似,獲取字典資料參考**如下所示

#明確存在某乙個key可以這樣取值,如果值不存在會報錯

d['存在的key']

#不知道是否存在的情況

d.get('不知道存不存在的key')

增加資料的方式比較常規,這裡不再特別說明,示例**如下所示

#增加一項資料

data['不存在的key'] = '值'

刪除資料的方式有兩種形式,第一種是彈出指定資料,第二種是通過方法刪除,和php基本類似,如下**所示

#彈出資料

data.pop('key')

#刪除資料

del data['key']

修改資料直接賦值即可,如下**所示

# 修改資料

data['存在的key'] = 新的值

在python中對資料會經常處理,這裡記錄三個常用的操作方法;

有時需要定義乙個列表,裡面包含1~100的所有數值,在php中可能需要通過for迴圈來實現,但在python中有乙個函式range()可以建立乙個整數列表,一般用在 for 迴圈中,如下**所示

#range(start, stop[, step])

for i in range(0,5,1):

print(i)

# 列印結果 0 1 2 3 4 5

start引數代表計數從 start 開始,stop是代表計數停止的數值,step則代表一次遞增幾個數值

在python中的布林值中,數字 0為 false,其他數字都為true,字串除了''是false以外,其他非空的字串都是true,tuple型別中除(){}是false,其他都是true,還有python中表示空的none也是false

在python中如果你想判斷乙個列表是否包含某乙個值可以使用in方式,如下**所示

#定義乙個列表

lst = ['tang','qing','song']

#判斷lst是否包含某乙個值

result = 'tang' in lst

print(result)

#列印結果 true

如果你想知道乙個list中是否不包含可以使用not in方式,如下**所示

#定義乙個列表

lst = ['tang','qing','song']

#判斷lst是否不包含某乙個值

result2 = 'tang' not in lst

print(result2)

#列印結果 false

在python中如果你想檢視乙個列表的長度,可以使用len(lstt)方法 檢視列表的長度

lst = ['tang','qing','song']

print(len(lst))

#列印結果 3

更新日期:2019-07-21

Python工程師學習之旅

1.python軟體開發基礎 1.linux作業系統2.docker基礎3.python基礎語法4.python字串解析5.python正規表示式6.python檔案操作7.python 模組8.python異常9.python gui程式設計10.python時間和日曆 掌握技能 1.掌握計算機的...

大資料工程師 學習路徑

hadoop來自於谷歌mapreduce的程式設計模型包。mapreduce框架把應用程式分解為平行計算指令,跨大量節點執行非常大的資料集。典型例子是搜尋演算法。hadoop最初與網頁索引有關,迅速發展成為分析大資料的領先平台。如果你想成為大資料工程師,卻不知從何學起 找不到系統的課程和專案進行學習...

演算法工程師學習流程

1.完成機器學習基礎的學習 機器學習方面的知識是演算法工程師區別於普通程式設計師的核心。這部分知識要重點掌握。1 學習資料 以林軒田的 機器學習基石 機器學習技巧 為主,以周志華的 機器學習 李航的 統計學習方法 為輔。2.練習 刷完 劍指offer 大概50題,最後可以手寫 並進行一些基本的邏輯訓...