blob: 00945aa4ad7c5e0f5100358227525fef88e9d99c [file] [log] [blame]
Georg Brandl8ec7f652007-08-15 14:28:01 +00001:mod:`operator` --- Standard operators as functions
2===================================================
3
4.. module:: operator
5 :synopsis: Functions corresponding to the standard operators.
6.. sectionauthor:: Skip Montanaro <skip@automatrix.com>
7
8
Georg Brandl61854332008-03-23 08:05:30 +00009.. testsetup::
Georg Brandlc62ef8b2009-01-03 20:55:06 +000010
Georg Brandl61854332008-03-23 08:05:30 +000011 import operator
12 from operator import itemgetter
13
Georg Brandl8ec7f652007-08-15 14:28:01 +000014
15The :mod:`operator` module exports a set of functions implemented in C
16corresponding to the intrinsic operators of Python. For example,
17``operator.add(x, y)`` is equivalent to the expression ``x+y``. The function
18names are those used for special class methods; variants without leading and
19trailing ``__`` are also provided for convenience.
20
21The functions fall into categories that perform object comparisons, logical
22operations, mathematical operations, sequence operations, and abstract type
23tests.
24
25The object comparison functions are useful for all objects, and are named after
26the rich comparison operators they support:
27
28
29.. function:: lt(a, b)
30 le(a, b)
31 eq(a, b)
32 ne(a, b)
33 ge(a, b)
34 gt(a, b)
35 __lt__(a, b)
36 __le__(a, b)
37 __eq__(a, b)
38 __ne__(a, b)
39 __ge__(a, b)
40 __gt__(a, b)
41
42 Perform "rich comparisons" between *a* and *b*. Specifically, ``lt(a, b)`` is
43 equivalent to ``a < b``, ``le(a, b)`` is equivalent to ``a <= b``, ``eq(a,
44 b)`` is equivalent to ``a == b``, ``ne(a, b)`` is equivalent to ``a != b``,
45 ``gt(a, b)`` is equivalent to ``a > b`` and ``ge(a, b)`` is equivalent to ``a
46 >= b``. Note that unlike the built-in :func:`cmp`, these functions can
47 return any value, which may or may not be interpretable as a Boolean value.
48 See :ref:`comparisons` for more information about rich comparisons.
49
50 .. versionadded:: 2.2
51
52The logical operations are also generally applicable to all objects, and support
53truth tests, identity tests, and boolean operations:
54
55
Mark Summerfieldddca9f02007-09-13 14:54:30 +000056.. function:: not_(obj)
57 __not__(obj)
Georg Brandl8ec7f652007-08-15 14:28:01 +000058
Mark Summerfieldddca9f02007-09-13 14:54:30 +000059 Return the outcome of :keyword:`not` *obj*. (Note that there is no
Georg Brandl8ec7f652007-08-15 14:28:01 +000060 :meth:`__not__` method for object instances; only the interpreter core defines
61 this operation. The result is affected by the :meth:`__nonzero__` and
62 :meth:`__len__` methods.)
63
64
Mark Summerfieldddca9f02007-09-13 14:54:30 +000065.. function:: truth(obj)
Georg Brandl8ec7f652007-08-15 14:28:01 +000066
Mark Summerfieldddca9f02007-09-13 14:54:30 +000067 Return :const:`True` if *obj* is true, and :const:`False` otherwise. This is
Georg Brandl8ec7f652007-08-15 14:28:01 +000068 equivalent to using the :class:`bool` constructor.
69
70
71.. function:: is_(a, b)
72
73 Return ``a is b``. Tests object identity.
74
75 .. versionadded:: 2.3
76
77
78.. function:: is_not(a, b)
79
80 Return ``a is not b``. Tests object identity.
81
82 .. versionadded:: 2.3
83
84The mathematical and bitwise operations are the most numerous:
85
86
Mark Summerfieldddca9f02007-09-13 14:54:30 +000087.. function:: abs(obj)
88 __abs__(obj)
Georg Brandl8ec7f652007-08-15 14:28:01 +000089
Mark Summerfieldddca9f02007-09-13 14:54:30 +000090 Return the absolute value of *obj*.
Georg Brandl8ec7f652007-08-15 14:28:01 +000091
92
93.. function:: add(a, b)
94 __add__(a, b)
95
96 Return ``a + b``, for *a* and *b* numbers.
97
98
99.. function:: and_(a, b)
100 __and__(a, b)
101
102 Return the bitwise and of *a* and *b*.
103
104
105.. function:: div(a, b)
106 __div__(a, b)
107
108 Return ``a / b`` when ``__future__.division`` is not in effect. This is
109 also known as "classic" division.
110
111
112.. function:: floordiv(a, b)
113 __floordiv__(a, b)
114
115 Return ``a // b``.
116
117 .. versionadded:: 2.2
118
119
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000120.. function:: inv(obj)
121 invert(obj)
122 __inv__(obj)
123 __invert__(obj)
Georg Brandl8ec7f652007-08-15 14:28:01 +0000124
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000125 Return the bitwise inverse of the number *obj*. This is equivalent to ``~obj``.
Georg Brandl8ec7f652007-08-15 14:28:01 +0000126
127 .. versionadded:: 2.0
128 The names :func:`invert` and :func:`__invert__`.
129
130
131.. function:: lshift(a, b)
132 __lshift__(a, b)
133
134 Return *a* shifted left by *b*.
135
136
137.. function:: mod(a, b)
138 __mod__(a, b)
139
140 Return ``a % b``.
141
142
143.. function:: mul(a, b)
144 __mul__(a, b)
145
146 Return ``a * b``, for *a* and *b* numbers.
147
148
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000149.. function:: neg(obj)
150 __neg__(obj)
Georg Brandl8ec7f652007-08-15 14:28:01 +0000151
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000152 Return *obj* negated.
Georg Brandl8ec7f652007-08-15 14:28:01 +0000153
154
155.. function:: or_(a, b)
156 __or__(a, b)
157
158 Return the bitwise or of *a* and *b*.
159
160
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000161.. function:: pos(obj)
162 __pos__(obj)
Georg Brandl8ec7f652007-08-15 14:28:01 +0000163
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000164 Return *obj* positive.
Georg Brandl8ec7f652007-08-15 14:28:01 +0000165
166
167.. function:: pow(a, b)
168 __pow__(a, b)
169
170 Return ``a ** b``, for *a* and *b* numbers.
171
172 .. versionadded:: 2.3
173
174
175.. function:: rshift(a, b)
176 __rshift__(a, b)
177
178 Return *a* shifted right by *b*.
179
180
181.. function:: sub(a, b)
182 __sub__(a, b)
183
184 Return ``a - b``.
185
186
187.. function:: truediv(a, b)
188 __truediv__(a, b)
189
190 Return ``a / b`` when ``__future__.division`` is in effect. This is also
191 known as "true" division.
192
193 .. versionadded:: 2.2
194
195
196.. function:: xor(a, b)
197 __xor__(a, b)
198
199 Return the bitwise exclusive or of *a* and *b*.
200
201
202.. function:: index(a)
203 __index__(a)
204
205 Return *a* converted to an integer. Equivalent to ``a.__index__()``.
206
207 .. versionadded:: 2.5
208
209
210Operations which work with sequences include:
211
212.. function:: concat(a, b)
213 __concat__(a, b)
214
215 Return ``a + b`` for *a* and *b* sequences.
216
217
218.. function:: contains(a, b)
219 __contains__(a, b)
220
221 Return the outcome of the test ``b in a``. Note the reversed operands.
222
223 .. versionadded:: 2.0
224 The name :func:`__contains__`.
225
226
227.. function:: countOf(a, b)
228
229 Return the number of occurrences of *b* in *a*.
230
231
232.. function:: delitem(a, b)
233 __delitem__(a, b)
234
235 Remove the value of *a* at index *b*.
236
237
238.. function:: delslice(a, b, c)
239 __delslice__(a, b, c)
240
241 Delete the slice of *a* from index *b* to index *c-1*.
242
Georg Brandl95a840b2008-12-05 15:42:03 +0000243 .. deprecated:: 2.6
244 This function is removed in Python 3.x. Use :func:`delitem` with a slice
245 index.
246
Georg Brandl8ec7f652007-08-15 14:28:01 +0000247
248.. function:: getitem(a, b)
249 __getitem__(a, b)
250
251 Return the value of *a* at index *b*.
252
253
254.. function:: getslice(a, b, c)
255 __getslice__(a, b, c)
256
257 Return the slice of *a* from index *b* to index *c-1*.
258
Georg Brandl95a840b2008-12-05 15:42:03 +0000259 .. deprecated:: 2.6
260 This function is removed in Python 3.x. Use :func:`getitem` with a slice
261 index.
262
Georg Brandl8ec7f652007-08-15 14:28:01 +0000263
264.. function:: indexOf(a, b)
265
266 Return the index of the first of occurrence of *b* in *a*.
267
268
269.. function:: repeat(a, b)
270 __repeat__(a, b)
271
Raymond Hettinger4a1b62a2009-02-03 03:18:14 +0000272 .. deprecated:: 2.7
273 Use :func:`__mul__` instead.
274
Georg Brandl8ec7f652007-08-15 14:28:01 +0000275 Return ``a * b`` where *a* is a sequence and *b* is an integer.
276
277
278.. function:: sequenceIncludes(...)
279
280 .. deprecated:: 2.0
281 Use :func:`contains` instead.
282
283 Alias for :func:`contains`.
284
285
286.. function:: setitem(a, b, c)
287 __setitem__(a, b, c)
288
289 Set the value of *a* at index *b* to *c*.
290
291
292.. function:: setslice(a, b, c, v)
293 __setslice__(a, b, c, v)
294
295 Set the slice of *a* from index *b* to index *c-1* to the sequence *v*.
296
Georg Brandl95a840b2008-12-05 15:42:03 +0000297 .. deprecated:: 2.6
298 This function is removed in Python 3.x. Use :func:`setitem` with a slice
299 index.
300
301
Georg Brandl8ec7f652007-08-15 14:28:01 +0000302Many operations have an "in-place" version. The following functions provide a
303more primitive access to in-place operators than the usual syntax does; for
Georg Brandl584265b2007-12-02 14:58:50 +0000304example, the :term:`statement` ``x += y`` is equivalent to
305``x = operator.iadd(x, y)``. Another way to put it is to say that
306``z = operator.iadd(x, y)`` is equivalent to the compound statement
307``z = x; z += y``.
Georg Brandl8ec7f652007-08-15 14:28:01 +0000308
309.. function:: iadd(a, b)
310 __iadd__(a, b)
311
312 ``a = iadd(a, b)`` is equivalent to ``a += b``.
313
314 .. versionadded:: 2.5
315
316
317.. function:: iand(a, b)
318 __iand__(a, b)
319
320 ``a = iand(a, b)`` is equivalent to ``a &= b``.
321
322 .. versionadded:: 2.5
323
324
325.. function:: iconcat(a, b)
326 __iconcat__(a, b)
327
328 ``a = iconcat(a, b)`` is equivalent to ``a += b`` for *a* and *b* sequences.
329
330 .. versionadded:: 2.5
331
332
333.. function:: idiv(a, b)
334 __idiv__(a, b)
335
336 ``a = idiv(a, b)`` is equivalent to ``a /= b`` when ``__future__.division`` is
337 not in effect.
338
339 .. versionadded:: 2.5
340
341
342.. function:: ifloordiv(a, b)
343 __ifloordiv__(a, b)
344
345 ``a = ifloordiv(a, b)`` is equivalent to ``a //= b``.
346
347 .. versionadded:: 2.5
348
349
350.. function:: ilshift(a, b)
351 __ilshift__(a, b)
352
353 ``a = ilshift(a, b)`` is equivalent to ``a <``\ ``<= b``.
354
355 .. versionadded:: 2.5
356
357
358.. function:: imod(a, b)
359 __imod__(a, b)
360
361 ``a = imod(a, b)`` is equivalent to ``a %= b``.
362
363 .. versionadded:: 2.5
364
365
366.. function:: imul(a, b)
367 __imul__(a, b)
368
369 ``a = imul(a, b)`` is equivalent to ``a *= b``.
370
371 .. versionadded:: 2.5
372
373
374.. function:: ior(a, b)
375 __ior__(a, b)
376
377 ``a = ior(a, b)`` is equivalent to ``a |= b``.
378
379 .. versionadded:: 2.5
380
381
382.. function:: ipow(a, b)
383 __ipow__(a, b)
384
385 ``a = ipow(a, b)`` is equivalent to ``a **= b``.
386
387 .. versionadded:: 2.5
388
389
390.. function:: irepeat(a, b)
391 __irepeat__(a, b)
392
Raymond Hettinger4a1b62a2009-02-03 03:18:14 +0000393 .. deprecated:: 2.7
394 Use :func:`__imul__` instead.
395
Georg Brandl8ec7f652007-08-15 14:28:01 +0000396 ``a = irepeat(a, b)`` is equivalent to ``a *= b`` where *a* is a sequence and
397 *b* is an integer.
398
399 .. versionadded:: 2.5
400
401
402.. function:: irshift(a, b)
403 __irshift__(a, b)
404
405 ``a = irshift(a, b)`` is equivalent to ``a >>= b``.
406
407 .. versionadded:: 2.5
408
409
410.. function:: isub(a, b)
411 __isub__(a, b)
412
413 ``a = isub(a, b)`` is equivalent to ``a -= b``.
414
415 .. versionadded:: 2.5
416
417
418.. function:: itruediv(a, b)
419 __itruediv__(a, b)
420
421 ``a = itruediv(a, b)`` is equivalent to ``a /= b`` when ``__future__.division``
422 is in effect.
423
424 .. versionadded:: 2.5
425
426
427.. function:: ixor(a, b)
428 __ixor__(a, b)
429
430 ``a = ixor(a, b)`` is equivalent to ``a ^= b``.
431
432 .. versionadded:: 2.5
433
434
435The :mod:`operator` module also defines a few predicates to test the type of
Raymond Hettinger4a1b62a2009-02-03 03:18:14 +0000436objects; however, these are not all reliable. It is preferable to test
437abstract base classes instead (see :mod:`collections` and
438:mod:`numbers` for details).
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000439
440.. function:: isCallable(obj)
Georg Brandl8ec7f652007-08-15 14:28:01 +0000441
442 .. deprecated:: 2.0
Raymond Hettinger4a1b62a2009-02-03 03:18:14 +0000443 Use ``isinstance(x, collections.Callable)`` instead.
Georg Brandl8ec7f652007-08-15 14:28:01 +0000444
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000445 Returns true if the object *obj* can be called like a function, otherwise it
Georg Brandl8ec7f652007-08-15 14:28:01 +0000446 returns false. True is returned for functions, bound and unbound methods, class
447 objects, and instance objects which support the :meth:`__call__` method.
448
449
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000450.. function:: isMappingType(obj)
Georg Brandl8ec7f652007-08-15 14:28:01 +0000451
Raymond Hettinger4a1b62a2009-02-03 03:18:14 +0000452 .. deprecated:: 2.7
453 Use ``isinstance(x, collections.Mapping)`` instead.
454
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000455 Returns true if the object *obj* supports the mapping interface. This is true for
Georg Brandl8ec7f652007-08-15 14:28:01 +0000456 dictionaries and all instance objects defining :meth:`__getitem__`.
457
458 .. warning::
459
460 There is no reliable way to test if an instance supports the complete mapping
461 protocol since the interface itself is ill-defined. This makes this test less
462 useful than it otherwise might be.
463
464
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000465.. function:: isNumberType(obj)
Georg Brandl8ec7f652007-08-15 14:28:01 +0000466
Raymond Hettinger4a1b62a2009-02-03 03:18:14 +0000467 .. deprecated:: 2.7
468 Use ``isinstance(x, numbers.Number)`` instead.
469
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000470 Returns true if the object *obj* represents a number. This is true for all
Georg Brandl8ec7f652007-08-15 14:28:01 +0000471 numeric types implemented in C.
472
473 .. warning::
474
475 There is no reliable way to test if an instance supports the complete numeric
476 interface since the interface itself is ill-defined. This makes this test less
477 useful than it otherwise might be.
478
479
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000480.. function:: isSequenceType(obj)
Georg Brandl8ec7f652007-08-15 14:28:01 +0000481
Raymond Hettinger4a1b62a2009-02-03 03:18:14 +0000482 .. deprecated:: 2.7
483 Use ``isinstance(x, collections.Sequence)`` instead.
484
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000485 Returns true if the object *obj* supports the sequence protocol. This returns true
Georg Brandl8ec7f652007-08-15 14:28:01 +0000486 for all objects which define sequence methods in C, and for all instance objects
487 defining :meth:`__getitem__`.
488
489 .. warning::
490
491 There is no reliable way to test if an instance supports the complete sequence
492 interface since the interface itself is ill-defined. This makes this test less
493 useful than it otherwise might be.
494
495Example: Build a dictionary that maps the ordinals from ``0`` to ``255`` to
Georg Brandl4f0f34f2008-03-22 21:26:44 +0000496their character equivalents.
Georg Brandl8ec7f652007-08-15 14:28:01 +0000497
Georg Brandl8ec7f652007-08-15 14:28:01 +0000498 >>> d = {}
499 >>> keys = range(256)
500 >>> vals = map(chr, keys)
Georg Brandl61854332008-03-23 08:05:30 +0000501 >>> map(operator.setitem, [d]*len(keys), keys, vals) # doctest: +SKIP
Georg Brandl8ec7f652007-08-15 14:28:01 +0000502
503.. XXX: find a better, readable, example
504
505The :mod:`operator` module also defines tools for generalized attribute and item
506lookups. These are useful for making fast field extractors as arguments for
507:func:`map`, :func:`sorted`, :meth:`itertools.groupby`, or other functions that
508expect a function argument.
509
510
511.. function:: attrgetter(attr[, args...])
512
513 Return a callable object that fetches *attr* from its operand. If more than one
514 attribute is requested, returns a tuple of attributes. After,
Georg Brandle2065c62008-02-23 23:02:23 +0000515 ``f = attrgetter('name')``, the call ``f(b)`` returns ``b.name``. After,
516 ``f = attrgetter('name', 'date')``, the call ``f(b)`` returns ``(b.name,
Georg Brandl8ec7f652007-08-15 14:28:01 +0000517 b.date)``.
518
Georg Brandle2065c62008-02-23 23:02:23 +0000519 The attribute names can also contain dots; after ``f = attrgetter('date.month')``,
520 the call ``f(b)`` returns ``b.date.month``.
521
Georg Brandl8ec7f652007-08-15 14:28:01 +0000522 .. versionadded:: 2.4
523
524 .. versionchanged:: 2.5
525 Added support for multiple attributes.
526
Georg Brandle2065c62008-02-23 23:02:23 +0000527 .. versionchanged:: 2.6
528 Added support for dotted attributes.
529
Georg Brandl8ec7f652007-08-15 14:28:01 +0000530
531.. function:: itemgetter(item[, args...])
532
Raymond Hettinger513460f2008-03-11 21:37:46 +0000533 Return a callable object that fetches *item* from its operand using the
534 operand's :meth:`__getitem__` method. If multiple items are specified,
535 returns a tuple of lookup values. Equivalent to::
536
537 def itemgetter(*items):
538 if len(items) == 1:
539 item = items[0]
540 def g(obj):
541 return obj[item]
542 else:
543 def g(obj):
544 return tuple(obj[item] for item in items)
545 return g
Georg Brandlc62ef8b2009-01-03 20:55:06 +0000546
547 The items can be any type accepted by the operand's :meth:`__getitem__`
548 method. Dictionaries accept any hashable value. Lists, tuples, and
Georg Brandl4f0f34f2008-03-22 21:26:44 +0000549 strings accept an index or a slice:
Raymond Hettinger513460f2008-03-11 21:37:46 +0000550
Georg Brandl4f0f34f2008-03-22 21:26:44 +0000551 >>> itemgetter(1)('ABCDEFG')
552 'B'
553 >>> itemgetter(1,3,5)('ABCDEFG')
554 ('B', 'D', 'F')
555 >>> itemgetter(slice(2,None))('ABCDEFG')
556 'CDEFG'
Georg Brandl8ec7f652007-08-15 14:28:01 +0000557
558 .. versionadded:: 2.4
559
560 .. versionchanged:: 2.5
561 Added support for multiple item extraction.
562
Raymond Hettinger513460f2008-03-11 21:37:46 +0000563 Example of using :func:`itemgetter` to retrieve specific fields from a
Georg Brandl4f0f34f2008-03-22 21:26:44 +0000564 tuple record:
Georg Brandl8ec7f652007-08-15 14:28:01 +0000565
Raymond Hettinger513460f2008-03-11 21:37:46 +0000566 >>> inventory = [('apple', 3), ('banana', 2), ('pear', 5), ('orange', 1)]
567 >>> getcount = itemgetter(1)
568 >>> map(getcount, inventory)
569 [3, 2, 5, 1]
570 >>> sorted(inventory, key=getcount)
571 [('orange', 1), ('banana', 2), ('apple', 3), ('pear', 5)]
Georg Brandl8ec7f652007-08-15 14:28:01 +0000572
573
Georg Brandlebcfd112008-02-23 23:04:35 +0000574.. function:: methodcaller(name[, args...])
575
576 Return a callable object that calls the method *name* on its operand. If
577 additional arguments and/or keyword arguments are given, they will be given
578 to the method as well. After ``f = methodcaller('name')``, the call ``f(b)``
579 returns ``b.name()``. After ``f = methodcaller('name', 'foo', bar=1)``, the
580 call ``f(b)`` returns ``b.name('foo', bar=1)``.
581
582 .. versionadded:: 2.6
583
584
Georg Brandl8ec7f652007-08-15 14:28:01 +0000585.. _operator-map:
586
587Mapping Operators to Functions
588------------------------------
589
590This table shows how abstract operations correspond to operator symbols in the
591Python syntax and the functions in the :mod:`operator` module.
592
593+-----------------------+-------------------------+---------------------------------+
594| Operation | Syntax | Function |
595+=======================+=========================+=================================+
596| Addition | ``a + b`` | ``add(a, b)`` |
597+-----------------------+-------------------------+---------------------------------+
598| Concatenation | ``seq1 + seq2`` | ``concat(seq1, seq2)`` |
599+-----------------------+-------------------------+---------------------------------+
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000600| Containment Test | ``obj in seq`` | ``contains(seq, obj)`` |
Georg Brandl8ec7f652007-08-15 14:28:01 +0000601+-----------------------+-------------------------+---------------------------------+
602| Division | ``a / b`` | ``div(a, b)`` (without |
603| | | ``__future__.division``) |
604+-----------------------+-------------------------+---------------------------------+
605| Division | ``a / b`` | ``truediv(a, b)`` (with |
606| | | ``__future__.division``) |
607+-----------------------+-------------------------+---------------------------------+
608| Division | ``a // b`` | ``floordiv(a, b)`` |
609+-----------------------+-------------------------+---------------------------------+
610| Bitwise And | ``a & b`` | ``and_(a, b)`` |
611+-----------------------+-------------------------+---------------------------------+
612| Bitwise Exclusive Or | ``a ^ b`` | ``xor(a, b)`` |
613+-----------------------+-------------------------+---------------------------------+
614| Bitwise Inversion | ``~ a`` | ``invert(a)`` |
615+-----------------------+-------------------------+---------------------------------+
616| Bitwise Or | ``a | b`` | ``or_(a, b)`` |
617+-----------------------+-------------------------+---------------------------------+
618| Exponentiation | ``a ** b`` | ``pow(a, b)`` |
619+-----------------------+-------------------------+---------------------------------+
620| Identity | ``a is b`` | ``is_(a, b)`` |
621+-----------------------+-------------------------+---------------------------------+
622| Identity | ``a is not b`` | ``is_not(a, b)`` |
623+-----------------------+-------------------------+---------------------------------+
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000624| Indexed Assignment | ``obj[k] = v`` | ``setitem(obj, k, v)`` |
Georg Brandl8ec7f652007-08-15 14:28:01 +0000625+-----------------------+-------------------------+---------------------------------+
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000626| Indexed Deletion | ``del obj[k]`` | ``delitem(obj, k)`` |
Georg Brandl8ec7f652007-08-15 14:28:01 +0000627+-----------------------+-------------------------+---------------------------------+
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000628| Indexing | ``obj[k]`` | ``getitem(obj, k)`` |
Georg Brandl8ec7f652007-08-15 14:28:01 +0000629+-----------------------+-------------------------+---------------------------------+
630| Left Shift | ``a << b`` | ``lshift(a, b)`` |
631+-----------------------+-------------------------+---------------------------------+
632| Modulo | ``a % b`` | ``mod(a, b)`` |
633+-----------------------+-------------------------+---------------------------------+
634| Multiplication | ``a * b`` | ``mul(a, b)`` |
635+-----------------------+-------------------------+---------------------------------+
636| Negation (Arithmetic) | ``- a`` | ``neg(a)`` |
637+-----------------------+-------------------------+---------------------------------+
638| Negation (Logical) | ``not a`` | ``not_(a)`` |
639+-----------------------+-------------------------+---------------------------------+
640| Right Shift | ``a >> b`` | ``rshift(a, b)`` |
641+-----------------------+-------------------------+---------------------------------+
Benjamin Peterson90f36732008-07-12 20:16:19 +0000642| Sequence Repetition | ``seq * i`` | ``repeat(seq, i)`` |
Georg Brandl8ec7f652007-08-15 14:28:01 +0000643+-----------------------+-------------------------+---------------------------------+
644| Slice Assignment | ``seq[i:j] = values`` | ``setslice(seq, i, j, values)`` |
645+-----------------------+-------------------------+---------------------------------+
646| Slice Deletion | ``del seq[i:j]`` | ``delslice(seq, i, j)`` |
647+-----------------------+-------------------------+---------------------------------+
648| Slicing | ``seq[i:j]`` | ``getslice(seq, i, j)`` |
649+-----------------------+-------------------------+---------------------------------+
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000650| String Formatting | ``s % obj`` | ``mod(s, obj)`` |
Georg Brandl8ec7f652007-08-15 14:28:01 +0000651+-----------------------+-------------------------+---------------------------------+
652| Subtraction | ``a - b`` | ``sub(a, b)`` |
653+-----------------------+-------------------------+---------------------------------+
Mark Summerfieldddca9f02007-09-13 14:54:30 +0000654| Truth Test | ``obj`` | ``truth(obj)`` |
Georg Brandl8ec7f652007-08-15 14:28:01 +0000655+-----------------------+-------------------------+---------------------------------+
656| Ordering | ``a < b`` | ``lt(a, b)`` |
657+-----------------------+-------------------------+---------------------------------+
658| Ordering | ``a <= b`` | ``le(a, b)`` |
659+-----------------------+-------------------------+---------------------------------+
660| Equality | ``a == b`` | ``eq(a, b)`` |
661+-----------------------+-------------------------+---------------------------------+
662| Difference | ``a != b`` | ``ne(a, b)`` |
663+-----------------------+-------------------------+---------------------------------+
664| Ordering | ``a >= b`` | ``ge(a, b)`` |
665+-----------------------+-------------------------+---------------------------------+
666| Ordering | ``a > b`` | ``gt(a, b)`` |
667+-----------------------+-------------------------+---------------------------------+
668