当前位置:网站首页>Usage of [:] and [::] in Python

Usage of [:] and [::] in Python

2020-11-09 22:37:00 Giant ship

Python in [:] And [::] Usage of

summary

[:] And [::] Syntax is a general sequential operation (Common Sequence Operations) Two of them . use [:] or [::] For most sequence types ( Variable or immutable )( Such as a string 、 List etc. ) The elements in the sequence are intercepted .

[:] Usage of

s[i:j]

From the subscript i To the subscript j, Intercept sequence s The elements in .

  1. If i or j It's a negative number , Then the subscript starts at the end of the sequence , in other words , Subscript i It's equivalent to a subscript len(s)+i, Subscript j It's equivalent to a subscript len(s)+j. in addition ,-0 Is still 0.
  2. From sequence s The subscript i The elements of ( contain ) To the subscript j The elements of ( It doesn't contain ) Between all the elements , Intercept . in addition ,i < j.
    • if i or j Greater than len(s), be i or j By len(s) replace .
    • if i Omit or omit i yes None value , be i By 0 replace .
    • if j Omit or omit j yes None value , be j By len(s) replace .
    • if i>=j, Returns a sequence without elements .
>>> a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[-1:]
[9]
>>> a[-9:-1]
[1, 2, 3, 4, 5, 6, 7, 8]
>>> a[1:20]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:9]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> a[0:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[9:3]
[]
>>>

[::] Usage of

s[i:j:k]

From the subscript i To the subscript j, The steps are k, Intercept sequence s The elements in .

  1. If i or j It's a negative number , Then the subscript starts at the end of the sequence , in other words , Subscript i It's equivalent to a subscript len(s)+i, Subscript j It's equivalent to a subscript len(s)+j. in addition ,-0 Is still 0.
  2. From sequence s The subscript i The elements of ( contain ) To the subscript j The elements of ( It doesn't contain ) Between , Select the subscript as i+n*k The elements of (0 <= n < (j-i)/k), in other words , Select the subscript as i, i+k, i +2*k, i+3*k And so on , Until the subscript is greater than or equal to j until .
    • When k Is a positive number , Subscript selection reverses from 0 To len(s)-1.
    • When k It's a negative number , Subscript selection reverses from len(s)-1 To 0.
    • When i or j Omit or omit None value , Then the end subscript (0 or len(s)-1) replaced ( To be specific, see k The positive and negative signs of ).
    • k Not for 0. if k by None value , Will k as 1.
>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[1:10:2]
[1, 3, 5, 7, 9]
>>> a[1:10:3]
[1, 4, 7]
>>> a[1:10:-2]
[]
>>> a[1:10:-3]
[]
>>> a[10:1:-2]
[9, 7, 5, 3]
>>> a[10:1:-3]
[9, 6, 3]
>>> a[::2]
[0, 2, 4, 6, 8]
>>> a[::-2]
[9, 7, 5, 3, 1]
>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> a[-9:-1:2]
[1, 3, 5, 7]
>>> a[-9:-1:-2]
[]
>>> a[-1:-9:-2]
[9, 7, 5, 3]
>>> a[-1::-2]
[9, 7, 5, 3, 1]
>>> a[:-1:2]
[0, 2, 4, 6, 8]
>>>

Reference material

  1. Common Sequence Operations
  2. python Medium [:-1] and [::-1]
  3. What is :: (double colon) in Python when subscripting sequences?

版权声明
本文为[Giant ship]所创,转载请带上原文链接,感谢