Pythonでキュー
30分プログラム、その156。Pythonでキューを作ろう。
本当は、うまく動いてないEmacsのpython-modeをちゃんと動くようにしよう、というのが目的だった。でも、pythonがpython2.3へのシンボリックリンクだったのを、python2.5に貼るようにしたら、あっさり動いちゃった。
なんで、そのときに使ったテストプログラムで、お茶を濁しておく。
使い方
>>> import queue >>> q = queue.Queue() >>> q.unshift(5) [5] >>> q.unshift(9) [5,9] >>> q.unshift(42) [5, 9, 42] >>> q.shift() 5 >>> q.shift() 9 >>> q.shift() 42
ソースコード
#! /usr/bin/python # -*- mode:python; coding:utf-8 -*- # # queue.py - Queue # # Copyright(C) 2007 by mzp # Author: MIZUNO Hiroki <hiroki1124@gmail.com> # http://mzp.sakura.ne.jp/ # # Timestamp: 2007/10/15 23:34:20 # # This program is free software; you can redistribute it and/or # modify it under the same terms as Python itself. # class Queue: def __init__(self): self.queue = [] def unshift(self,value): self.queue.append(value) return self def shift(self): if self.queue == []: return [] else: value = self.queue[0] del self.queue[0] return value def __repr__(self): return repr(self.queue) def __str__(self): return str(self.queue) if __name__ == '__main__': queue = Queue() queue.unshift(10) queue.unshift(11) queue.unshift(13) print queue.shift() print queue.shift() print queue.shift()