Package org.python.modules._collections
Class PyDeque
java.lang.Object
org.python.core.PyObject
org.python.modules._collections.PyDeque
- All Implemented Interfaces:
Serializable,Traverseproc
- Direct Known Subclasses:
PyDequeDerived
PyDeque - This class implements the functionalities of Deque data structure. 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.
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.
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.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.python.core.PyObject
PyObject.ConversionException -
Field Summary
FieldsFields inherited from class org.python.core.PyObject
gcMonitorGlobal -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid__delitem__(PyObject key) Equivalent to the standard Python __delitem__ method.Equivalent to the standard Python __eq__ method.__finditem__(PyObject key) Very similar to the standard Python __getitem__ method.Equivalent to the standard Python __ge__ method.Equivalent to the standard Python __gt__ method.Equivalent to the standard Python __iadd__ method.__iter__()Return an iterator that is used to iterate the element of this sequence.Equivalent to the standard Python __le__ method.int__len__()Equivalent to the standard Python __len__ method.Equivalent to the standard Python __lt__ method.Equivalent to the standard Python __ne__ method.booleanEquivalent to the standard Python __nonzero__ method.Used for pickling.void__setitem__(PyObject index, PyObject value) Equivalent to the standard Python __setitem__ method.final voiddeque___init__(PyObject[] args, String[] kwds) final voiddeque_append(PyObject obj) Add obj to the right side of the deque.final voiddeque_appendleft(PyObject obj) Add obj to the left side of the deque.final voidRemove all elements from the deque leaving it with length 0.final PyObjectCount the number of deque elements equal to x.final voiddeque_extend(PyObject iterable) Extend the right side of the deque by appending elements from the iterable argument.final voiddeque_extendleft(PyObject iterable) Extend the left side of the deque by appending elements from iterable.final PyObjectRemove and return an element from the right side of the deque.final PyObjectRemove and return an element from the left side of the deque.final PyObjectdeque_remove(PyObject value) Removed the first occurrence of value.final PyObjectReverse the elements of the deque in-place and then return None.final voiddeque_rotate(int steps) Rotate the deque n steps to the right.If maxlen is not specified or is None, deques may grow to an arbitrary length.inthashCode()booleanbooleanbooleanOptional operation.voidtoString()intTraverses all directly containedPyObjects.Methods inherited from class org.python.core.PyObject
__abs__, __add__, __and__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __cmp__, __coerce__, __coerce_ex__, __complex__, __contains__, __delattr__, __delattr__, __delete__, __delitem__, __delslice__, __delslice__, __dir__, __div__, __divmod__, __ensure_finalizer__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __finditem__, __float__, __floordiv__, __format__, __get__, __getattr__, __getattr__, __getitem__, __getitem__, __getnewargs__, __getslice__, __getslice__, __hash__, __hex__, __iand__, __idiv__, __idivmod__, __ifloordiv__, __ilshift__, __imod__, __imul__, __index__, __int__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __iternext__, __itruediv__, __ixor__, __long__, __lshift__, __mod__, __mul__, __neg__, __not__, __oct__, __or__, __pos__, __pow__, __pow__, __radd__, __rand__, __rdiv__, __rdivmod__, __reduce_ex__, __reduce_ex__, __repr__, __rfloordiv__, __rlshift__, __rmod__, __rmul__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __set__, __setattr__, __setattr__, __setitem__, __setitem__, __setslice__, __setslice__, __str__, __sub__, __tojava__, __truediv__, __trunc__, __unicode__, __xor__, _add, _and, _callextra, _cmp, _div, _divmod, _doget, _doget, _doset, _eq, _floordiv, _ge, _gt, _iadd, _iand, _idiv, _idivmod, _ifloordiv, _ilshift, _imod, _imul, _in, _ior, _ipow, _irshift, _is, _isnot, _isub, _itruediv, _ixor, _jcall, _jcallexc, _jthrow, _le, _lshift, _lt, _mod, _mul, _ne, _notin, _or, _pow, _rshift, _sub, _truediv, _xor, asDouble, asIndex, asIndex, asInt, asInt, asIterable, asLong, asLong, asName, asName, asString, asString, asStringOrNull, asStringOrNull, bit_length, conjugate, delDict, delType, dispatch__init__, equals, fastGetClass, fastGetDict, getDict, getType, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, isInteger, isNumberType, noAttributeError, object___subclasshook__, readonlyAttributeError, setDict, setType
-
Field Details
-
TYPE
-
-
Constructor Details
-
PyDeque
public PyDeque() -
PyDeque
-
-
Method Details
-
deque___init__
-
getMaxlen
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. -
setMaxlen
-
deque_append
Add obj to the right side of the deque. -
deque_appendleft
Add obj to the left side of the deque. -
deque_clear
public final void deque_clear()Remove all elements from the deque leaving it with length 0. -
deque_extend
Extend the right side of the deque by appending elements from the iterable argument. -
deque_extendleft
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. -
deque_pop
Remove and return an element from the right side of the deque. If no elements are present, raises an IndexError. -
deque_popleft
Remove and return an element from the left side of the deque. If no elements are present, raises an IndexError. -
deque_remove
Removed the first occurrence of value. If not found, raises a ValueError. -
deque_count
Count the number of deque elements equal to x. -
deque_rotate
public final void deque_rotate(int steps) 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_reverse
Reverse the elements of the deque in-place and then return None.- Returns:
- Py.None
-
toString
-
__len__
public int __len__()Description copied from class:PyObjectEquivalent to the standard Python __len__ method. Part of the mapping discipline. -
__nonzero__
public boolean __nonzero__()Description copied from class:PyObjectEquivalent to the standard Python __nonzero__ method. Returns whether of not a givenPyObjectis considered true.- Overrides:
__nonzero__in classPyObject
-
__finditem__
Description copied from class:PyObjectVery similar to the standard Python __getitem__ method. Instead of throwing a KeyError if the item isn't found, this just returns null. Classes that wish to implement __getitem__ should override this method instead (with the appropriate semantics.- Overrides:
__finditem__in classPyObject- Parameters:
key- the key to lookup in this container- Returns:
- the value corresponding to key or null if key is not found
-
__setitem__
Description copied from class:PyObjectEquivalent to the standard Python __setitem__ method.- Overrides:
__setitem__in classPyObject- Parameters:
index- the key whose value will be setvalue- the value to set this key to
-
__delitem__
Description copied from class:PyObjectEquivalent to the standard Python __delitem__ method.- Overrides:
__delitem__in classPyObject- Parameters:
key- the key to be removed from the container
-
__iter__
Description copied from class:PyObjectReturn an iterator that is used to iterate the element of this sequence. From version 2.2, this method is the primary protocol for looping over sequences.If a PyObject subclass should support iteration based in the __finditem__() method, it must supply an implementation of __iter__() like this:
public PyObject __iter__() { return new PySequenceIter(this); }When iterating over a python sequence from java code, it should be done with code like this:for (PyObject item : seq.asIterable()) { // Do something with item } -
__eq__
Description copied from class:PyObjectEquivalent to the standard Python __eq__ method. -
__ne__
Description copied from class:PyObjectEquivalent to the standard Python __ne__ method. -
__lt__
Description copied from class:PyObjectEquivalent to the standard Python __lt__ method. -
__le__
Description copied from class:PyObjectEquivalent to the standard Python __le__ method. -
__gt__
Description copied from class:PyObjectEquivalent to the standard Python __gt__ method. -
__ge__
Description copied from class:PyObjectEquivalent to the standard Python __ge__ method. -
__iadd__
Description copied from class:PyObjectEquivalent to the standard Python __iadd__ method. -
hashCode
public int hashCode() -
__reduce__
Description copied from class:PyObjectUsed for pickling. Default implementation calls object___reduce__.- Overrides:
__reduce__in classPyObject- Returns:
- a tuple of (class, tuple)
-
isMappingType
public boolean isMappingType()- Overrides:
isMappingTypein classPyObject
-
isSequenceType
public boolean isSequenceType()- Overrides:
isSequenceTypein classPyObject
-
traverse
Description copied from interface:TraverseprocTraverses all directly containedPyObjects. Like in CPython,argmust be passed unmodified tovisitas its second parameter. IfVisitproc.visit(PyObject, Object)returns nonzero, this return value must be returned immediately by traverse.Visitproc.visit(PyObject, Object)must not be called with anullPyObject-argument.- Specified by:
traversein interfaceTraverseproc
-
refersDirectlyTo
Description copied from interface:TraverseprocOptional operation. Should only be implemented if it is more efficient than callingTraverseproc.traverse(Visitproc, Object)with a visitproc that just watches out forob. Must returnfalseifobisnull.- Specified by:
refersDirectlyToin interfaceTraverseproc- Throws:
UnsupportedOperationException
-