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...