python列表操作实例


Posted in Python onJanuary 14, 2015

本文实例讲述了python列表操作的方法。分享给大家供大家参考。

具体实现方法如下:

class Node:

   """Single node in a data structure"""

 

   def __init__(self, data):

      """Node constructor"""

       

      self._data = data

      self._nextNode = None

     

   def __str__(self):

      """Node data representation"""

 

      return str(self._data)     

 

class List:

   """Linked list"""

 

   def __init__(self):

      """List constructor"""

 

      self._firstNode = None

      self._lastNode = None

 

   def __str__(self):

      """List string representation"""

 

      if self.isEmpty():

         return "empty"

 

      currentNode = self._firstNode

      output = []

 

      while currentNode is not None:

         output.append(str(currentNode._data))

         currentNode = currentNode._nextNode

 

      return " ".join(output)     

 

   def insertAtFront(self, value):

      """Insert node at front of list"""

 

      newNode = Node(value)

 

      if self.isEmpty():  # List is empty

         self._firstNode = self._lastNode = newNode

      else:   # List is not empty

         newNode._nextNode = self._firstNode

         self._firstNode = newNode

         

   def insertAtBack(self, value):

      """Insert node at back of list"""

 

      newNode = Node(value)

 

      if self.isEmpty():  # List is empty

         self._firstNode = self._lastNode = newNode

      else:  # List is not empty

         self._lastNode._nextNode = newNode

         self._lastNode = newNode

 

   def removeFromFront(self):

      """Delete node from front of list"""

 

      if self.isEmpty():  # raise exception on empty list

         raise IndexError, "remove from empty list"

 

      tempNode = self._firstNode

 

      if self._firstNode is self._lastNode:  # one node in list

         self._firstNode = self._lastNode = None

      else:

         self._firstNode = self._firstNode._nextNode

 

      return tempNode

 

   def removeFromBack(self):

      """Delete node from back of list"""

 

      if self.isEmpty():  # raise exception on empty list

         raise IndexError, "remove from empty list"

      

      tempNode = self._lastNode

 

      if self._firstNode is self._lastNode:  # one node in list

         self._firstNode = self._lastNode = None

      else:

         currentNode = self._firstNode

 

         # locate second-to-last node

         while currentNode._nextNode is not self._lastNode:

               currentNode = currentNode._nextNode

                

         currentNode._nextNode = None

         self._lastNode = currentNode

 

      return tempNode

     

   def isEmpty(self):

      """Returns true if List is empty"""

 

      return self._firstNode is None

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python基于checksum计算文件是否相同的方法
Jul 09 Python
python获取元素在数组中索引号的方法
Jul 15 Python
完美解决Python2操作中文名文件乱码的问题
Jan 04 Python
详解python string类型 bytes类型 bytearray类型
Dec 16 Python
图解Python变量与赋值
Apr 03 Python
Python paramiko模块的使用示例
Apr 11 Python
如何实现删除numpy.array中的行或列
May 08 Python
Python面向对象之反射/自省机制实例分析
Aug 24 Python
iPython pylab模式启动方式
Apr 24 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
python利用appium实现手机APP自动化的示例
Jan 26 Python
python操作gmail实例
Jan 14 #Python
Python中的装饰器用法详解
Jan 14 #Python
python登陆asp网站页面的实现代码
Jan 14 #Python
Python的面向对象思想分析
Jan 14 #Python
为python设置socket代理的方法
Jan 14 #Python
Python单例模式实例分析
Jan 14 #Python
python文件读写操作与linux shell变量命令交互执行的方法
Jan 14 #Python
You might like
自动分页的不完整解决方案
2007/01/12 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
在Python的Django框架中包装视图函数
2015/07/20 Python
Python实现简单多线程任务队列
2016/02/27 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
Python2与Python3的区别实例总结
2019/04/17 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
远程研修随笔感言
2014/02/10 职场文书
2014年财务部工作总结
2014/11/11 职场文书
教师个人年度总结
2015/02/11 职场文书
运动会通讯稿50字
2015/07/20 职场文书