一、背景
繼上篇文章比較了PHP與Python語法之后,這周又學習了Python數(shù)據(jù)類型,準備從通過這篇文章給自己進行一些總結,也給其他讀者一些參考。
二、內(nèi)容概要
- 字符串(str)
- 列表(list)
- 元組(tup)
- 字典(dict)
- 數(shù)據(jù)操作
三、字符串(str)
Python中字符串操作基本和PHP類似,下面介紹一下Python中字符串的常規(guī)操作方法
3.1 索引下標取值
在PHP中可以通過索引下標的方式獲取到字符串中的某一個字符,在Python中也同樣可以獲取到,如下代碼所示
#定義字符串
testStr = 'tangqingsong'
#通過索引下標獲取字符
print(testStr[1])
#打印結果 a
3.2 切片
在Python中有一個非常好用的功能叫做切片,比如當你想獲取字符串中第n個字符到第m個字符中的區(qū)間字符,使用Python的切片實現(xiàn)非常簡單,如下代碼所示
#定義字符串
testStr = 'tangqingsong'
#通過索引下標獲取字符
print(testStr[0:4])
#打印結果 tang
3.3 循環(huán)
在Python中for不僅僅可以循環(huán)類似于PHP中的數(shù)組,還可以循環(huán)字符串,如下代碼所示
testStr = 'tangqingsong'
for value in testStr[0:4]:
print(value)
#打印結果 tang
3.4 字母大小寫轉(zhuǎn)換
在Python中實現(xiàn)字母大小寫轉(zhuǎn)換和PHP的寫法稍有不同,Python中操作有點類似于PHP操作對象的感覺,如下代碼所示
#定義字符串
testStr = 'tQs'
#大寫轉(zhuǎn)換
aStr = testStr.upper()
#小寫轉(zhuǎn)換
bStr = testStr.lower()
print(aStr,bStr)
#打印結果 TQS tqs
3.4 分割和合并
接著我們再來看一下怎么把字符串切割與合并,如下代碼所示
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()
函數(shù)過濾,而Python中字符串首尾過濾的語法有點類似于PHP操作對象的方式,代碼如下所示
# 去掉邊界上的內(nèi)容 strip
s1 = ' tang qing song '
print(s1.strip())
#打印結果 ‘tang qing song’
如果你想指定刪除某一個字符,代碼如下所示
s2 = '<湯青松>'
print(s2.strip('>'))
#打印結果 '<湯青松'
四、列表(list)
在Python中有一種叫做list的數(shù)據(jù)類型,在PHP中我們通常稱之為索引數(shù)組
4.1 數(shù)據(jù)定義
定義list數(shù)據(jù)方式如下代碼所示
#定義一個list數(shù)據(jù)
lst = ['張三','李四','王五','馬六','田七']
取數(shù)據(jù)方式和PHP基本一致,比如想獲取lst里面的李四,可以這樣獲取
$name = lst[1]
4.2 切片
除了正向取數(shù)據(jù)還可以反著順序取數(shù)據(jù),比如你要獲取馬六,你可以這樣寫
$name = lst[-2]
在Python中有一種獲取數(shù)據(jù)非常簡便的方法,叫做切片,比如你想獲取lst中的李四到馬六區(qū)間的數(shù)據(jù),在PHP中你得用
array_slice
函數(shù)去截取,但在Python則非常方便,如下代碼所示
print(lst[1:4])
# 打印結果 ['李四','王五','馬六']
如果你想隔一個數(shù)據(jù)取一個數(shù)據(jù),切片還支持設置步長,步長默認為1,也就是說連續(xù)取數(shù)據(jù),當你設置步長后,會按照指定的步長,如下代碼所示
print(lst[1:4:2])
# 打印結果 ['李四','馬六']
同樣切片也支持反著取數(shù)據(jù),比如你想獲取田七到王五區(qū)間的數(shù)據(jù),參考代碼如下
print(lst[-1:-3:-1])
# 打印結果 ['田七','馬六','王五']
4.3 修改數(shù)據(jù)
在Python中如果你想向一個list數(shù)據(jù)中追加一個數(shù)據(jù)可以使用append方法向末尾增加,如下代碼所示
lst = lst.append('王八')
也可以使用pop方法彈出最末尾一個數(shù)據(jù),如下代碼所示
value = lst.pop()
如果你想吧數(shù)據(jù)清空,也可以使用clear方法,當然你也可以直接將值重新賦值一個空list,如下代碼所示
lst.clear()
#或者
lst = []
4.4 值的引用
在Python中需要注意一種引用內(nèi)存地址的特殊情況,如下代碼所示
# 定義兩個變量
aList = ['張三', '李四', '王五']
bList = []
# 在bList中追加aList,此時bList為二維list
bList.append(aList)
#修改aList變量里面的值
aList[0] = '張三豐'
#打印bList
print(bList)
# 打印結果 [['張三豐', '李四', '王五']]
在上面代碼中可以看到,已經(jīng)將一個變量賦給另外一個變量,按照常規(guī)理解來說,他們是相互獨立的,但實際上并不是;在Python中如果存在二維的list,一維里面往往是記錄一個內(nèi)存地址,并不是把值完整的復制一份,這種引用操作Python中也稱之為淺拷貝;
五、元組(tup)
在Python中有一種數(shù)據(jù)類型和list非常相似,稱之為元組(tuple);它們最明顯區(qū)別就是list定義之后可以修改結構,而元組定義之后不能再次修改,其次是在定義的時候有一點點不同,如下代碼所示
#定義list數(shù)據(jù)
lst = ['張三', '李四', '王五']
#定義元組數(shù)據(jù)
tple ('張三', '李四', '王五')
在取數(shù)據(jù)的時候同樣支持切片,也同樣支持用索引(下標)方式來取值,唯一的區(qū)別就是不能再更改里面的值,比如說追加數(shù)據(jù)或者里面的某一個數(shù)據(jù)重新賦值。
六、字典 (dict )
在PHP中我們知道數(shù)組有兩種類型,索引數(shù)組和關聯(lián)數(shù)組,而關聯(lián)數(shù)組在Python中稱之為字典,定義方式和lst區(qū)別不大,如下代碼所示
6.1 數(shù)據(jù)定義
demo = {
'k1':'v1',
'k2':'v2',
'k3':'v3',
}
在Python中定義字典相對PHP來說比較嚴格,對key有要求,不像PHP中可以只輸入值而不輸入可以,在Python中必須同時輸入key和value。
6.2 增刪改查
Python中的字典增刪改查和PHP基本類似,獲取字典數(shù)據(jù)參考代碼如下所示
#明確存在某一個key可以這樣取值,如果值不存在會報錯
d['存在的key']
#不知道是否存在的情況
d.get('不知道存不存在的key')
增加數(shù)據(jù)的方式比較常規(guī),這里不再特別說明,示例代碼如下所示
#增加一項數(shù)據(jù)
data['不存在的key'] = '值'
刪除數(shù)據(jù)的方式有兩種形式,第一種是彈出指定數(shù)據(jù),第二種是通過方法刪除,和PHP基本類似,如下代碼所示
#彈出數(shù)據(jù)
data.pop('key')
#刪除數(shù)據(jù)
del data['key']
修改數(shù)據(jù)直接賦值即可,如下代碼所示
# 修改數(shù)據(jù)
data['存在的key'] = 新的值
七、雜項
在Python中對數(shù)據(jù)會經(jīng)常處理,這里記錄三個常用的操作方法;
7,1 range 函數(shù)
有時需要定義一個列表,里面包含1~100的所有數(shù)值,在PHP中可能需要通過for循環(huán)來實現(xiàn),但在Python中有一個函數(shù)range()可以創(chuàng)建一個整數(shù)列表,一般用在 for 循環(huán)中,如下代碼所示
#range(start, stop[, step])
for i in range(0,5,1):
print(i)
# 打印結果 0 1 2 3 4 5
start參數(shù)代表計數(shù)從 start 開始,stop是代表計數(shù)停止的數(shù)值,step則代表一次遞增幾個數(shù)值
7.2 布爾型說明
在Python中的布爾值中,數(shù)字 0為 False,其他數(shù)字都為true,字符串除了''是false以外,其他非空的字符串都是true,tuple類型中除
()
和
{}
是false,其他都是true,還有Python中表示空的none也是false
7.3 數(shù)據(jù)操作
在Python中如果你想判斷一個列表是否包含某一個值可以使用in方式,如下代碼所示
#定義一個列表
lst = ['tang','qing','song']
#判斷l(xiāng)st是否包含某一個值
result = 'tang' in lst
print(result)
#打印結果 True
如果你想知道一個list中是否不包含可以使用not in方式,如下代碼所示
#定義一個列表
lst = ['tang','qing','song']
#判斷l(xiāng)st是否不包含某一個值
result2 = 'tang' not in lst
print(result2)
#打印結果 False
在Python中如果你想查看一個列表的長度,可以使用len(lstt)方法 查看列表的長度
lst = ['tang','qing','song']
print(len(lst))
#打印結果 3
作者:湯青松
微信:songboy8888
更新日期:2019-07-21
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
