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标准库与第三方库详解
Jul 22 Python
python实现上传样本到virustotal并查询扫描信息的方法
Oct 05 Python
跟老齐学Python之大话题小函数(2)
Oct 10 Python
python生成密码字典的方法
Jul 06 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
Dec 14 Python
python实现远程控制电脑
May 23 Python
python操作日志的封装方法(两种方法)
May 23 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
Python求平面内点到直线距离的实现
Jan 19 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
Python 中如何写注释
Aug 28 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
PHP编码转换
2012/11/05 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
input 输入框内的输入事件详细分析
2010/03/17 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
深入学习python的yield和generator
2016/03/10 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
Python控制Firefox方法总结
2019/06/03 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
附答案的Java面试题
2012/11/19 面试题
绿色环保标语
2014/06/12 职场文书
销售类求职信
2014/06/13 职场文书
治庸问责心得体会
2014/09/12 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
期末复习计划
2015/01/19 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
keepalived + nginx 实现高可用方案
2022/12/24 Servers