Author: Aleksandr Chirkov
March 14, 2014, 8:01 p.m.

class collections.deque([iterable[, maxlen]])

Returns a new deque object initialized left-to-right (using append()) with data from iterable. If iterable is not specified, the new deque is empty.

Deques are a generalization of stacks and queues (the name is pronounced “deck” and is short for “double-ended queue”). Deques support thread-safe, memory efficient appends and pops from either side of the deque with approximately the same O(1) performance in either direction.

Though list objects support similar operations, they are optimized for fast fixed-length operations and incur O(n) memory movement costs for pop(0) and insert(0, v) operations which change both the size and position of the underlying data representation.

If maxlen is not specified or is None, deques may grow to an arbitrary length. Otherwise, the deque is bounded to the specified maximum length. Once a bounded length deque is full, when new items are added, a corresponding number of items are discarded from the opposite end. Bounded length deques provide functionality similar to the tail filter in Unix. They are also useful for tracking transactions and other pools of data where only the most recent activity is of interest.

append(x)Add x to the right side of the deque.

appendleft(x)Add x to the left side of the deque.

clear()Remove all elements from the deque leaving it with length 0.

count(x)Count the number of deque elements equal to x.

extend(iterable)Extend the right side of the deque by appending elements from the iterable argument.

extendleft(iterable)Extend the left side of the deque by appending elements from iterable. Note, the series of left appends results in reversing the order of elements in the iterable argument.

pop()Remove and return an element from the right side of the deque. If no elements are present, raises an IndexError.

popleft()Remove and return an element from the left side of the deque. If no elements are present, raises an IndexError.

remove(value)Removed the first occurrence of value. If not found, raises a ValueError.

reverse()Reverse the elements of the deque in-place and then return None.

rotate(n)Rotate the deque n steps to the right. If n is negative, rotate to the left. Rotating one step to the right is equivalent to:d.appendleft(d.pop()).

Deque objects also provide one read-only attribute:

maxlen Maximum size of a deque or None if unbounded.



>>> from collections import deque
>>> d = deque('ghi')                 # make a new deque with three items
>>> for elem in d:                   # iterate over the deque's elements
...     print elem.upper()

>>> d.append('j')                    # add a new entry to the right side
>>> d.appendleft('f')                # add a new entry to the left side
>>> d                                # show the representation of the deque
deque(['f', 'g', 'h', 'i', 'j'])

>>> d.pop()                          # return and remove the rightmost item
>>> d.popleft()                      # return and remove the leftmost item
>>> list(d)                          # list the contents of the deque
['g', 'h', 'i']
>>> d[0]                             # peek at leftmost item
>>> d[-1]                            # peek at rightmost item

>>> list(reversed(d))                # list the contents of a deque in reverse
['i', 'h', 'g']
>>> 'h' in d                         # search the deque
>>> d.extend('jkl')                  # add multiple elements at once
>>> d
deque(['g', 'h', 'i', 'j', 'k', 'l'])
>>> d.rotate(1)                      # right rotation
>>> d
deque(['l', 'g', 'h', 'i', 'j', 'k'])
>>> d.rotate(-1)                     # left rotation
>>> d
deque(['g', 'h', 'i', 'j', 'k', 'l'])

>>> deque(reversed(d))               # make a new deque in reverse order
deque(['l', 'k', 'j', 'i', 'h', 'g'])
>>> d.clear()                        # empty the deque
>>> d.pop()                          # cannot pop from an empty deque
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in -toplevel-
IndexError: pop from an empty deque

>>> d.extendleft('abc')              # extendleft() reverses the input order
>>> d
deque(['c', 'b', 'a'])

Cialis Para Hipertensos Cialis 20mg Soft Tabs accutane 40 mg online [url=]cialis[/url] Buy Prevacid 24hr Cialis Et Generique cialis buy online Viagra Pfizer Test Viagra Generico Pagamento Postepay Eaton Amoxicillin Viagra Wonderful Special For Men Temporary Amoxicillin Side Effects Bacteria Cheap Tadacip From Holland - cialis price Cialis And Glaucoma Propecia Cuero Cabelludo
Priligy Realmente Funciona [url=]cialis[/url] Buying Oral Ampicillin Baclofene En Suisse Zithromax With Food Nolvadex Posologie Compra Kamagra Online cialis Buy Tamoxifen Uk Comprar Generico Propecia Viagra Cialis - generic cialis Proper Amoxicillin Dosage
cialis and pepto bismol [url=]cialis[/url] what happens when you take cialis when you don't need it cialis online take cialis with viagra together
effects of alcohol with viagra [url=]viagra online[/url] best viagra to buy in uk viagra online where can you buy viagra over the counter in canada
cialis is for what tadalafil online cialis super active plus [url=]tadalafil online[/url] what is the use of cialis
eli lilly cialis [url=][/url] effective dose of cialis generic cialis online use cialis for fun
phone number to buy viagra [url=]generic viagra online[/url] buying genuine viagra online viagra can i take viagra after heart surgery

Leave a comment:

Web development
Review Linux
Provisioning CVS
Windows AWS
Continuous Integration
NoSql Logging Web Servers FileSystems Scala
accurev ansible apach2 apache api application approaches architecture archivation argparse arguments artifactory automation awk aws backup bash batch-scripting beaver block build built-in caching call captcha cartridge case certificates cgi chain client cloud cloudformation cluster cmd coding collections command-line commands compression conditionals conversion convert cookbook copy counter cron crud css cut cygwin daemon datatype date dd debpackage decorator delattr deploy deque dict distributed-file-systems django DNS domain driver dropbox dump elasticcache elasticsearch encryption exit ext4 extra-tags failover file filename filters for form format freetds functions gerrit getattribute gid git globals glusterfs hardware hook iam indexing inheritance init install job-interview jquery ldap linux list locals logging logs logstash lookup magicmethods mail main-menu metadata metalogger mongodb moosefs mount mssql multiplatform multithreading mysql netcat nginx nosql open-ssh openldap openshift os packaging parse partition path pattern patterns permissions pid pil pip pipe playbook pool post post-commit processes production provisioning proxy putty python python-mysql recursively redirection redis register replication repr restore return review rotation scala script search selenium server setattr settings setup shipper signals singleton slots snapshot socket splunk ssh ssh-key ssl storage str string style subprocess sugar super switch syntactic syntaxhighlighter systeminfo tail tar templatetags time tls tune2fs tuple ubuntu unicode unique unix unixodbc usage usecases uuid uwsgi variable vars version vi virtualenv volume web web-server windows with_items __getattr__