PHP工程師學Python數據類型

1、背景

繼上篇文章比較了PHP與Python語法以後,這周又學習了Python數據類型,準備從經過這篇文章給本身進行一些總結,也給其餘讀者一些參考。數組

2、內容概要

  1. 字符串(str)
  2. 列表(list)
  3. 元組(tup)
  4. 字典(dict)
  5. 數據操做

3、字符串(str)

Python中字符串操做基本和PHP相似,下面介紹一下Python中字符串的常規操做方法bash

3.1 索引下標取值

在PHP中能夠經過索引下標的方式獲取到字符串中的某一個字符,在Python中也一樣能夠獲取到,以下代碼所示微信

#定義字符串
testStr = 'tangqingsong'
#經過索引下標獲取字符
print(testStr[1])

#打印結果 a
複製代碼

3.2 切片

在Python中有一個很是好用的功能叫作切片,好比當你想獲取字符串中第n個字符到第m個字符中的區間字符,使用Python的切片實現很是簡單,以下代碼所示app

#定義字符串
testStr = 'tangqingsong'
#經過索引下標獲取字符
print(testStr[0:4])

#打印結果 tang
複製代碼

3.3 循環

在Python中for不只僅能夠循環相似於PHP中的數組,還能夠循環字符串,以下代碼所示函數

testStr = 'tangqingsong'

for value in testStr[0:4]:
    print(value)

#打印結果 tang
複製代碼

3.4 字母大小寫轉換

在Python中實現字母大小寫轉換和PHP的寫法稍有不一樣,Python中操做有點相似於PHP操做對象的感受,以下代碼所示學習

#定義字符串
testStr = 'tQs'
#大寫轉換
aStr = testStr.upper()
#小寫轉換
bStr = testStr.lower()

print(aStr,bStr)

#打印結果 TQS tqs
複製代碼

3.4 分割和合並

接着咱們再來看一下怎麼把字符串切割與合併,以下代碼所示ui

s = 'tang|qing|song'
l = s.split('|')

print(l)
#打印結果 ['tang', 'qing', 'song']

s2 = '|'.join(['tang', 'qing', 'song'])
print(s2)
#打印結果 tang|qing|song
複製代碼

3.5 字符串首尾過濾

在PHP中字符串首尾過濾一般使用trim()函數過濾,而Python中字符串首尾過濾的語法有點相似於PHP操做對象的方式,代碼以下所示spa

# 去掉邊界上的內容 strip
s1 = ' tang qing song '

print(s1.strip())
#打印結果 ‘tang qing song’
複製代碼

若是你想指定刪除某一個字符,代碼以下所示code

s2 = '<湯青松>'
print(s2.strip('>'))

#打印結果 '<湯青松'
複製代碼

4、列表(list)

在Python中有一種叫作list的數據類型,在PHP中咱們一般稱之爲索引數組對象

4.1 數據定義

定義list數據方式以下代碼所示

#定義一個list數據
lst = ['張三','李四','王五','馬六','田七']
複製代碼

取數據方式和PHP基本一致,好比想獲取lst裏面的李四,能夠這樣獲取

$name = lst[1]
複製代碼

4.2 切片

除了正向取數據還能夠反着順序取數據,好比你要獲取馬六,你能夠這樣寫

$name = lst[-2]
複製代碼

在Python中有一種獲取數據很是簡便的方法,叫作切片,好比你想獲取lst中的李四到馬六區間的數據,在PHP中你得用array_slice函數去截取,但在Python則很是方便,以下代碼所示

print(lst[1:4])

# 打印結果 ['李四','王五','馬六']
複製代碼

若是你想隔一個數據取一個數據,切片還支持設置步長,步長默認爲1,也就是說連續取數據,當你設置步長後,會按照指定的步長,以下代碼所示

print(lst[1:4:2])

# 打印結果 ['李四','馬六']
複製代碼

一樣切片也支持反着取數據,好比你想獲取田七到王五區間的數據,參考代碼以下

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

# 打印結果 ['田七','馬六','王五']
複製代碼

4.3 修改數據

在Python中若是你想向一個list數據中追加一個數據可使用append方法向末尾增長,以下代碼所示

lst = lst.append('王八')
複製代碼

也可使用pop方法彈出最末尾一個數據,以下代碼所示

value = lst.pop()
複製代碼

若是你想吧數據清空,也可使用clear方法,固然你也能夠直接將值從新賦值一個空list,以下代碼所示

lst.clear()
#或者
lst = []
複製代碼

4.4 值的引用

在Python中須要注意一種引用內存地址的特殊狀況,以下代碼所示

# 定義兩個變量
aList = ['張三', '李四', '王五']
bList = []

# 在bList中追加aList,此時bList爲二維list
bList.append(aList)

#修改aList變量裏面的值
aList[0] = '張三丰'

#打印bList
print(bList)
# 打印結果 [['張三丰', '李四', '王五']]
複製代碼

在上面代碼中能夠看到,已經將一個變量賦給另一個變量,按照常規理解來講,他們是相互獨立的,但實際上並非;在Python中若是存在二維的list,一維裏面每每是記錄一個內存地址,並非把值完整的複製一份,這種引用操做Python中也稱之爲淺拷貝;

5、元組(tup)

在Python中有一種數據類型和list很是類似,稱之爲元組(tuple);它們最明顯區別就是list定義以後能夠修改結構,而元組定義以後不能再次修改,其次是在定義的時候有一點點不一樣,以下代碼所示

#定義list數據
lst = ['張三', '李四', '王五']
#定義元組數據
tple ('張三', '李四', '王五')
複製代碼

在取數據的時候一樣支持切片,也一樣支持用索引(下標)方式來取值,惟一的區別就是不能再更改裏面的值,好比說追加數據或者裏面的某一個數據從新賦值。

6、字典 (dict )

在PHP中咱們知道數組有兩種類型,索引數組和關聯數組,而關聯數組在Python中稱之爲字典,定義方式和lst區別不大,以下代碼所示

6.1 數據定義

demo = {
    'k1':'v1',
    'k2':'v2',
    'k3':'v3',
}
複製代碼

在Python中定義字典相對PHP來講比較嚴格,對key有要求,不像PHP中能夠只輸入值而不輸入能夠,在Python中必須同時輸入key和value。

6.2 增刪改查

Python中的字典增刪改查和PHP基本相似,獲取字典數據參考代碼以下所示

#明確存在某一個key能夠這樣取值,若是值不存在會報錯
d['存在的key']

#不知道是否存在的狀況
d.get('不知道存不存在的key')
複製代碼

增長數據的方式比較常規,這裏再也不特別說明,示例代碼以下所示

#增長一項數據
data['不存在的key'] = '值'
複製代碼

刪除數據的方式有兩種形式,第一種是彈出指定數據,第二種是經過方法刪除,和PHP基本相似,以下代碼所示

#彈出數據
data.pop('key')
#刪除數據
del data['key']
複製代碼

修改數據直接賦值便可,以下代碼所示

# 修改數據
data['存在的key'] = 新的值
複製代碼

7、雜項

在Python中對數據會常常處理,這裏記錄三個經常使用的操做方法;

7,1 range 函數

有時須要定義一個列表,裏面包含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則表明一次遞增幾個數值

7.2 布爾型說明

在Python中的布爾值中,數字 0爲 False,其餘數字都爲true,字符串除了''是false之外,其餘非空的字符串都是true,tuple類型中除(){}是false,其餘都是true,還有Python中表示空的none也是false

7.3 數據操做

在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
複製代碼

做者:湯青松

微信:songboy8888

更新日期:2019-07-21

相關文章
相關標籤/搜索