在Python中,切片是列表、元組或者字符串中常見用法,然而對一些新手而言,有時候含有切片的代碼可讀性并不是非常友好。下面就說一說Python中切片的具體用法。
在Python中,切片的使用方式為 [起始位置 : 結束位置 : 步長] ,代表著從起始位置到結束位置根據(jù)步長所得到的全部元素。其中,起始位置、結束位置、步長三個屬性均有默認值,當不指定其具體值時,Python就會使用其默認值,它們的默認值分別為0,、列表或元組長度、1。
值得注意的幾點是:
1、當起始位置為負數(shù)時,比如起始位置為 -k 時,此時表示取最后列表、元組或字符串中的最后k個元素。
2、當步長為負數(shù)時,表示從后往前開始計數(shù),其絕對值仍然是間隔。
下面給出幾個demo看一下。
rlist=list(range(10)) #生成的是[0,1,2,3,4,5,6,7,8,9]
print(rlist[2:8]) #從第3個元素開始,到第8個元素結束
print(rlist[:5]) #如果冒號前面沒寫的話,代表從0開始取的
print(rlist[4:]) #如果冒號后面沒寫的話,代表取到最后
print(rlist[:]) #如果冒號前后都沒寫的話,代表取全部
b = a[i:j] #表示復制a[i]到a[j-1],以生成新的list對象
a = [0,1,2,3,4,5,6,7,8,9]
b = a[1:3] #[1,2]
#當i缺省時,默認為0,即 a[:3]相當于 a[0:3]
#當j缺省時,默認為len(alist), 即a[1:]相當于a[1:10]
#當i,j都缺省時,a[:]就相當于完整復制一份a
b = a[i:j:s] #表示:i,j與上面的一樣,但s表示步進,缺省為1.
#所以a[i:j:1]相當于a[i:j]
#當s<0時,i缺省時,默認為-1. j缺省時,默認為-len(a)-1
#所以a[::-1]相當于 a[-1:-len(a)-1:-1],也就是從最后一個元素到第一個元素復制一遍,即倒序。
? ? ? ?下面是一個趣味題:
#判斷一個字符串是否是回文,即:字符串和它反轉后的字符串是否相等,如果相等就是回文。
s='上海自來水來自海上'
# 回文算法,反過來倒過去都一樣
for i in range(10):
s = input('請輸入一個字符串:')
if len(s)<2:
print('字符串長度必須大于2')
elif s==s[::-1]: #.reverse()方法是列表中的方法,字符串中沒有,因此只能用切片方法
print('是回文')
else:
print('不是回文')
結束,感謝閱讀!如果有誤,請指正!
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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