[Pythonjp-checkins] [python-doc-ja] push by toshi****@gmail***** - tutorial/datastructures.rst 差分翻訳 on 2011-02-19 15:57 GMT

アーカイブの一覧に戻る

pytho****@googl***** pytho****@googl*****
2011年 2月 20日 (日) 00:57:59 JST


Revision: 2ec3ca2b0c
Author: Toshiyuki Kawanishi <toshi****@gmail*****>
Date: Sat Feb 19 07:51:29 2011
Log: tutorial/datastructures.rst 差分翻訳
http://code.google.com/p/python-doc-ja/source/detail?r=2ec3ca2b0c

Modified:
  /tutorial/datastructures.rst

=======================================
--- /tutorial/datastructures.rst	Sat Nov 27 11:01:10 2010
+++ /tutorial/datastructures.rst	Sat Feb 19 07:51:29 2011
@@ -126,21 +126,28 @@

  .. sectionauthor:: Ka-Ping Yee <ping****@lfw*****>

-リストをキュー (queue) として手軽に使うこともできます。キューでは、最初に追 
加された要素が最初に取り出されます ("first-in, first-
-out")。キューの末尾に項目を追加するには :meth:`append` を使います。キューの 
先頭から項目を取り出すには  インデクスに ``0``
-を指定して :meth:`pop` を使います。例えば以下のようにします。
+ひとつの可能性として、リストをキュー (queue) として使うこともありえます。
+この場合、最初に追加した要素を最初に取り出します ("first-in, first-out")。
+しかし、リストでは効率的にこの目的を達成することが出来ません。
+追加(append)や取り出し(pop)をリストの末尾に対しておこなうと速いのです 
が、
+挿入(insert)や取り出し(pop)をリストの先頭に対しておこなうと遅くなってし 
まいます
+(他の要素をひとつずつずらす必要があるからです)。
+
+キューの実装には、 :class:`collections.deque` を使うと良いでしょう。
+このクラスは良く設計されていて、高速な追加(append)と取り出し(pop)を両端 
に対して実現しています。例えば以下のようにします。

  ::

-   >>> queue = ["Eric", "John", "Michael"]
-   >>> queue.append("Terry")           # Terry が到着 (arrive) する
-   >>> queue.append("Graham")          # Graham が到着する
-   >>> queue.pop(0)
+   >>> from collections import deque
+   >>> queue = deque(["Eric", "John", "Michael"])
+   >>> queue.append("Terry")           # Terry arrives
+   >>> queue.append("Graham")          # Graham arrives
+   >>> queue.popleft()                 # The first to arrive now leaves
     'Eric'
-   >>> queue.pop(0)
+   >>> queue.popleft()                 # The second to arrive now leaves
     'John'
-   >>> queue
-   ['Michael', 'Terry', 'Graham']
+   >>> queue                           # Remaining queue in order of  
arrival
+   deque(['Michael', 'Terry', 'Graham'])


  .. _tut-functional:




Pythonjp-checkins メーリングリストの案内
アーカイブの一覧に戻る