python中[:]和[::]的區別


如果要從字符串中取出多個字符,我們可以對字符串進行切片,運算符是[i:j:k],其中i是開始索引,索引對應的字符可以取到;j是結束索引,索引對應的字符不能取到;k是步長,默認值為1,表示從前向后獲取相鄰字符的連續切片,所以:k部分可以省略。假設字符串的長度為N,當k > 0時表示正向切片(從前向后獲取字符),如果沒有給出ij的值,則i的默認值是0j的默認值是N;當k < 0時表示負向切片(從后向前獲取字符),如果沒有給出ij的值,則i的默認值是-1,j的默認值是-N - 1。如果不理解,直接看下面的例子,記住第一個字符的索引是0-N,最后一個字符的索引是N-1-1就行了。

s = 'abc123456'

# i=2, j=5, k=1的正向切片操作
print(s[2:5])       # c12

# i=-7, j=-4, k=1的正向切片操作
print(s[-7:-4])     # c12

# i=2, j=9, k=1的正向切片操作
print(s[2:])        # c123456

# i=-7, j=9, k=1的正向切片操作
print(s[-7:])       # c123456

# i=2, j=9, k=2的正向切片操作
print(s[2::2])      # c246

# i=-7, j=9, k=2的正向切片操作
print(s[-7::2])     # c246

# i=0, j=9, k=2的正向切片操作
print(s[::2])       # ac246

# i=1, j=-1, k=2的正向切片操作
print(s[1:-1:2])    # b135

# i=7, j=1, k=-1的負向切片操作
print(s[7:1:-1])    # 54321c

# i=-2, j=-8, k=-1的負向切片操作
print(s[-2:-8:-1])  # 54321c

# i=7, j=-10, k=-1的負向切片操作
print(s[7::-1])     # 54321cba

# i=-1, j=1, k=-1的負向切片操作
print(s[:1:-1])     # 654321c

# i=0, j=9, k=1的正向切片
print(s[:])         # abc123456

# i=0, j=9, k=2的正向切片
print(s[::2])       # ac246

# i=-1, j=-10, k=-1的負向切片
print(s[::-1])      # 654321cba

# i=-1, j=-10, k=-2的負向切片
print(s[::-2])      # 642ca


免責聲明!

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



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