国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中順序表的實現簡單代碼分享

2020-02-16 11:32:43
字體:
來源:轉載
供稿:網友

順序表python版的實現(部分功能未實現)

結果展示:

代碼示例:

#!/usr/bin/env python# -*- coding:utf-8 -*-class SeqList(object): def __init__(self, max=8):  self.max = max  #創建默認為8  self.num = 0  self.date = [None] * self.max  #list()會默認創建八個元素大小的列表,num=0,并有鏈接關系  #用list實現list有些荒謬,全當練習  #self.last = len(self.date)  #當列表滿時,擴建的方式省略 def is_empty(self):  return self.num is 0 def is_full(self):  return self.num is self.max #獲取某個位置的元素 def __getitem__(self, key):  if not isinstance(key, int):   raise TypeError  if 0<= key < self.num:   return self.date[key]  else:   #表為空或者索引超出范圍都會引發索引錯誤   raise IndexError #設置某個位置的元素 def __setitem__(self, key, value):  if not isinstance(key, int):   raise TypeError  #只能訪問列表里已有的元素,self.num=0時,一個都不能訪問,self.num=1時,只能訪問0  if 0<= key < self.num:   self.date[key] = value #該位置無元素會發生錯誤  else:   raise IndexError def clear(self):  self.__init__() def count(self):  return self.num def __len__(self):  return self.num #加入元素的方法 append()和insert() def append(self,value):  if self.is_full():   #等下擴建列表   print("list is full")   return  else:   self.date[self.num] = value   self.num += 1 def insert(self,key,value):  if not isinstance(key, int):   raise TypeError  if key<0: #暫時不考慮負數索引   raise IndexError  #當key大于元素個數時,默認尾部插入  if key>=self.num:   self.append(value)  else:   #移動key后的元素   for i in range(self.num, key, -1):    self.date[i] = self.date[i-1]   #賦值   self.date[key] = value   self.num += 1 #刪除元素的操作 def pop(self,key=-1):  if not isinstance(key, int):   raise TypeError  if self.num-1 < 0:   raise IndexError("pop from empty list")  elif key == -1:   #原來的數還在,但列表不識別他   self.num -= 1  else:   for i in range(key,self.num-1):    self.date[i] = self.date[i+1]   self.num -= 1 def index(self,value,start=0):  for i in range(start, self.num):   if self.date[i] == value:    return i  #沒找到  raise ValueError("%d is not in the list" % value) #列表反轉 def reverse(self):  i,j = 0, self.num - 1  while i<j:   self.date[i], self.date[j] = self.date[j], self.date[i]   i,j = i+1, j-1if __name__=="__main__": a = SeqList() print(a.date) #num == 0 print(a.is_empty()) a.append(0) a.append(1) a.append(2) print(a.date) print(a.num) print(a.max) a.insert(1,6) print(a.date) a[1] = 5 print(a.date) print(a.count()) print("返回值為2(第一次出現)的索引:", a.index(2, 1)) print("====") t = 1 if t:  a.pop(1)  print(a.date)  print(a.num) else:  a.pop()  print(a.date)  print(a.num) print("========") print(len(a)) a.reverse() print(a.date) """ print(a.is_full()) a.clear() print(a.date) print(a.count()) """            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青海省| 象州县| 绵竹市| 开封市| 洛隆县| 南昌市| 西平县| 葵青区| 岳阳市| 申扎县| 应用必备| 武胜县| 顺义区| 彩票| 兰坪| 施秉县| 天等县| 拜城县| 德保县| 海淀区| 新安县| 乾安县| 上犹县| 抚远县| 武乡县| 梅州市| 镶黄旗| 孙吴县| 呼玛县| 正定县| 阜新| 敦化市| 白朗县| 东安县| 方正县| 澜沧| 沁水县| 嵊州市| 资阳市| 开平市| 阳曲县|