Pythonでキュー

30分プログラム、その156。Pythonでキューを作ろう。

本当は、うまく動いてないEmacspython-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()