Python之切片操作


        記得剛開始學切片這一節的時候,看完之后,做了作業,感覺記憶深刻。學到后面很多地方都可以用到切片,這時候切片早已被我忘得一干二凈。    

        切片(Slice)是一個取部分元素的操作。可以操作list、tuple、字符串。利用切片很多地方循環就不再需要了。Python的切片非常靈活,一行代碼就可以實現很多行循環才能完成的操作。

        通常一個切片操作要提供三個參數 [start_index:  stop_index:  step] :
start_index是切片的起始位置
stop_index是切片的結束位置(不包括)
step可以不提供,默認值是1,步長值不能為0,不然會報錯ValueError。

 

L=list(range(10))
L1=L[0:3]  #從索引0開始取,直到索引3為止,但不包括索引3
#運行結果:[0, 1, 2]
L2=L[:3]   #如果第一個索引是0,還可以省略
#運行結果:[0, 1, 2]
L3=L[:-1]  #Python支持L[-1]取倒數第一個元素,那么它同樣支持倒數切片,倒數第一個元素的索引是-1
#運行結果:[0, 1, 2, 3, 4, 5, 6, 7, 8]
L4=L[1:8:2] #前8個數,每兩個取一個
#運行結果:[1, 3, 5, 7]
L5=L[::-1]  #倒敘取每一個數
#運行結果:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
L6=L[:]     #只寫[:]就可以原樣復制一個list
#運行結果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

作業1:

#利用切片操作,實現一個trim()函數,去除字符串首尾的空格
def trim(s):
    while s[:1]==' ':  #while循環判斷第一個元素是否為空
        s=s[1:]     #為空的話將第一個元素截取
    while s[-1:]==' ':  #while循環判斷最后一個元素是否為空
        s=s[:-1]     #為空的話將最后一個元素截取
    return s

 作業2:

#回數是指從左向右讀和從右向左讀都是一樣的數,例如12321,909。利用filter()篩選出回數:
def is_palindrome(n):
    if str(n)==str(n)[::-1]:  #判斷從左向右讀和從右向左讀是否都是一樣的數
        return n
print(list(filter(is_palindrome,list(range(100)))))

 

 

 

 



   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM