在Python的好片方法一樣片通過特殊的方式數組
my_array[3:]
我知道有Ruby的切片方法爲好,但也沒有方法,它不完全一樣,Python的my_array[3:]
(如果不知道數組的大小)。是不是?
在Python的好片方法一樣片通過特殊的方式數組
my_array[3:]
我知道有Ruby的切片方法爲好,但也沒有方法,它不完全一樣,Python的my_array[3:]
(如果不知道數組的大小)。是不是?
class Array
def sub_array(pos, len = -1)
if len == -1
then # the rest of the array starting at pos
len = self.size - pos
end
self.slice(pos, len)
end
end
my_array = %w[a b c d e f]
p my_array.sub_array(3) #=> ["d", "e", "f"]
p my_array.sub_array(5) #=> ["f"]
p my_array.sub_array(9) #=> nil
p my_array.sub_array(3, 2) #=> ["d", "e"]
p my_array.sub_array(3, 9) #=> ["d", "e", "f"]
其實,這原本是一個字符串的方法子。
請看看這裏的紅寶石slice methods。並作爲@Blender建議你可以通過像範圍:
my_array[3..-1]
編輯:
array = ["a", "b", "c", "d", "e"]
array[3..-1]
將導致["d", "e"]
爲d
的索引是3和e
是最後元件。
a = [ "a", "b", "c", "d", "e" ]
a[2] + a[0] + a[1] #=> "cab"
a[6] #=> nil
a[1, 2] #=> [ "b", "c" ]
a[1..3] #=> [ "b", "c", "d" ]
a[4..7] #=> [ "e" ]
a[6..10] #=> nil
a[-3, 3] #=> [ "c", "d", "e" ]
# special cases
a[5] #=> nil
a[5, 1] #=> []
a[5..10] #=> []
我想你可以做'my_array [3 ..- 1]'。它只是'my_array [3:-1]'的翻譯。 – Blender
如果您告訴我們該Python代碼的功能可能會有所幫助。 – pguardiario
它返回從第三個元素開始的所有元素。 –