類的切片與索引

2021-09-09 05:44:47 字數 2106 閱讀 3175

資料型別:int,float,str等

資料結構:陣列,列表,字典,集合,元組等

1.知道python中一切皆物件

2.實現索引的魔術方法:

def __getitem__(self,y):

#x.__getitem__(y) :==>x[y]

pass

例如:

class student(object):

def __init__(self, name, scores):

self.name = name

self.scores = scores

# 索引的是學生的成績

def __getitem__(self, index): # 1).索引值的獲取

print(index, type(index))

return self.scores[index]

def __setitem__(self, key, value): # 2). 索引值的重新賦值

self.scores[key] = value

def __delitem__(self, key): # 3). 刪除索引值

del self.scores[key]

def __mul__(self, other): # 4). 實現*的效果, 具體返回什麼取決於**的業務需求

"""對於學生的每一門成績乘3"""

return [i*other for i in self.scores]

def __add__(self, other): # 5). 連線的時候必須是同一種資料;型別

# 將兩個學生的成績拼接起來

return self.scores + other.scores

def __contains__(self, item): # 6). 判斷某個元素是否存在於這個物件中?

return item in self.scores

def __iter__(self): # 7). 迭代, 使得該物件可以實現for迴圈

# 將列表轉換為迭代的型別, 可以for迴圈, 一定要返回iter型別的資料;

return iter(self.scores)

def __lt__(self, other): # 8). 比較兩個物件的大小;

return (sum(self.scores)/3) < (sum(other.scores)/3)

liming = student(『liming』, [100, 89, 100])

print(liming[0])

print(liming[1])

print(liming[2])

liming[0] = 90

print(liming[0])

del liming[0]

print(liming[:2])

print(liming[:2])

print(liming[-2:]

liming[:2] = [10, 10]

print(liming.scores)

del liming[:2]

print(liming.scores)

print(liming * 3)
xiaohong = student('小紅', [100, 90, 90])

print(xiaohong + liming)

print(100 in xiaohong)

print(101 in xiaohong)

print(101 not in xiaohong)

for item in liming:

print(item)

print(liming >  xiaohong)

print(liming < xiaohong)

3 3 索引與切片

索引或切片都是根據條件對陣列的元素進行訪問的方法,本節主要介紹一維和二維陣列的元素索引 切片索引及花式索引。陣列的元素索引方法和python列表的索引方法相同,用整數作為下標可以獲取陣列中的某個元素,且索引初值從0開始計算,一維陣列的索引示例 a np.arange 10 a array 0,1,2...

pytorch索引與切片

torch會自動從左向右索引 例子 a torch.randn 4,3,28,28 表示類似乙個cnn 的的輸入資料,4表示這個batch一共有4張 而3表示的通道數為3 rgb 28,28 表示的大小 基本索引print a 0 shape torch.size 3,28,28 print a 0...

numpy索引與切片

作用 要獲取陣列的單個元素,指定元素的索引即可 例子 print x 2 3 print x 2 21 22 23 24 25 print x 2 1 22 print x 2,1 22 切片操作是指抽取陣列的一部分元素生成新陣列。對 python列表進行切片操作得到的陣列是原陣列的 副本,而對 n...