5 4 實現可切片的物件

2021-08-19 23:12:14 字數 2332 閱讀 7798

list序列的切片說明:

#模式[start:end:step]

""" 其中,第乙個數字start表示切片開始位置,預設為0;

第二個數字end表示切片截止(但不包含)位置(預設為列表長度);

第三個數字step表示切片的步長(預設為1)。

當start為0時可以省略,當end為列表長度時可以省略,

當step為1時可以省略,並且省略步長時可以同時省略最後乙個冒號。

另外,當step為負整數時,表示反向切片,這時start應該比end的值要大才行。

"""alist = [3, 4, 5, 6, 7, 9, 11, 13, 15, 17]

print (alist[::]) # 返回包含原列表中所有元素的新列表

print (alist[::-1]) # 返回包含原列表中所有元素的逆序列表

print (alist[::2]) # 隔乙個取乙個,獲取偶數字置的元素

print (alist[1::2]) # 隔乙個取乙個,獲取奇數字置的元素

print (alist[3:6]) # 指定切片的開始和結束位置

alist[0:100] # 切片結束位置大於列表長度時,從列表尾部截斷

alist[100:] # 切片開始位置大於列表長度時,返回空列表

alist[len(alist):] = [9] # 在列表尾部增加元素

alist[:0] = [1, 2] # 在列表頭部插入元素

alist[3:3] = [4] # 在列表中間位置插入元素

alist[:3] = [1, 2] # 替換列表元素,等號兩邊的列表長度相等

alist[3:] = [4, 5, 6] # 等號兩邊的列表長度也可以不相等

alist[::2] = [0] * 3

# 隔乙個修改乙個

print (alist)

alist[::2] = ['a', 'b', 'c'] # 隔乙個修改乙個

alist[::2] = [1,2] # 左側切片不連續,等號兩邊列表長度必須相等

alist[:3] = # 刪除列表中前3個元素

del alist[:3] # 切片元素連續

del alist[::2] # 切片元素不連續,隔乙個刪乙個

是否可以建立乙個物件,可以實現切片功能呢?

import numbers

class

group:

#支援切片操作

def__init__

(self, group_name, company_name, staffs):

self.group_name=group_name

self.company_name=company_name

self.staffs=staffs

def__reversed__

(self):

self.staffs.reverse()

def__getitem__

(self, item):

return self.staffs[item]

def__len__

(self):

return len(self.staffs)

def__iter__

(self):

return iter(self.staffs)

def__contains__

(self, item):

if item in self.staffs:

return

true

else:

return

false

staffs=['bobby1', 'imooc', 'bobby2', 'bobby3']

group = group(company_name='imooc', group_name='user', staffs=staffs)

print(group[0:3]) # __getitem__魔法函式實現了切片功能

print(group[2]) # __getitem__魔法函式實現的功能

reversed(group) # __reversed__魔法函式實現的功能

# __iter__實現迭代

for user in group:

print(user)

# __len__實現的功能

print(len(group))

# __contain__實現的功能

if'bobby1'

in group:

print('yes')

實現可切片的物件

ist序列的切片說明 模式 start end step 其中,第乙個數字start表示切片開始位置,預設為0 第二個數字end表示切片截止 但不包含 位置 預設為列表長度 第三個數字step表示切片的步長 預設為1 當start為0時可以省略,當end為列表長度時可以省略,當step為1時可以省略...

4 3 實現可切片的物件

1 user bin env python2 coding utf 8 34 模式 start end step 5 6其中,第乙個數字start表示切片開始位置,預設為0 7第二個數字end表示切片截止 但不包含 位置 預設為列表長度 8第三個數字step表示切片的步長 預設為1 9當start為...

python切片的物件 Python切片物件和

python中是否存在某種內部機制,它以不同的方式處理傳遞給 getitem 的引數,並自動將start stop step構造轉換為片?在 這是我的意思class exampleclass object def getitem self,args return args def call self...