91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中順序表怎么實現

發布時間:2021-08-02 10:00:50 來源:億速云 閱讀:137 作者:小新 欄目:開發技術

小編給大家分享一下Python中順序表怎么實現,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

結果展示:

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

if __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())
 """

以上是“Python中順序表怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安福县| 五寨县| 永兴县| 安仁县| 洛阳市| 武功县| 郯城县| 汪清县| 拉萨市| 安丘市| 镇赉县| 阿克陶县| 宁德市| 沾益县| 安达市| 威海市| 海南省| 乐陵市| 炎陵县| 易门县| 山阳县| 双江| 崇明县| 博野县| 探索| 渭源县| 桑植县| 乐平市| 西乡县| 辽源市| 曲阳县| 阳信县| 香河县| 忻城县| 阿克| 泌阳县| 平安县| 洛阳市| 雷山县| 湘西| 农安县|