Created
March 13, 2019 21:13
-
-
Save dogweather/3be67f077e0d76c8e2210f08c68d8686 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"First, we need to import some libraries:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from functools import reduce\n", | |
"from operator import add, mul" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"`add` and `mul` simply give nice names to addition `+` and multiplication `*`:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(3, 2)" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"add(1, 2), mul(1, 2)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"tuple" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"type(_)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Help on class tuple in module builtins:\n", | |
"\n", | |
"class tuple(object)\n", | |
" | tuple(iterable=(), /)\n", | |
" | \n", | |
" | Built-in immutable sequence.\n", | |
" | \n", | |
" | If no argument is given, the constructor returns an empty tuple.\n", | |
" | If iterable is specified the tuple is initialized from iterable's items.\n", | |
" | \n", | |
" | If the argument is a tuple, the return value is the same object.\n", | |
" | \n", | |
" | Methods defined here:\n", | |
" | \n", | |
" | __add__(self, value, /)\n", | |
" | Return self+value.\n", | |
" | \n", | |
" | __contains__(self, key, /)\n", | |
" | Return key in self.\n", | |
" | \n", | |
" | __eq__(self, value, /)\n", | |
" | Return self==value.\n", | |
" | \n", | |
" | __ge__(self, value, /)\n", | |
" | Return self>=value.\n", | |
" | \n", | |
" | __getattribute__(self, name, /)\n", | |
" | Return getattr(self, name).\n", | |
" | \n", | |
" | __getitem__(self, key, /)\n", | |
" | Return self[key].\n", | |
" | \n", | |
" | __getnewargs__(self, /)\n", | |
" | \n", | |
" | __gt__(self, value, /)\n", | |
" | Return self>value.\n", | |
" | \n", | |
" | __hash__(self, /)\n", | |
" | Return hash(self).\n", | |
" | \n", | |
" | __iter__(self, /)\n", | |
" | Implement iter(self).\n", | |
" | \n", | |
" | __le__(self, value, /)\n", | |
" | Return self<=value.\n", | |
" | \n", | |
" | __len__(self, /)\n", | |
" | Return len(self).\n", | |
" | \n", | |
" | __lt__(self, value, /)\n", | |
" | Return self<value.\n", | |
" | \n", | |
" | __mul__(self, value, /)\n", | |
" | Return self*value.\n", | |
" | \n", | |
" | __ne__(self, value, /)\n", | |
" | Return self!=value.\n", | |
" | \n", | |
" | __repr__(self, /)\n", | |
" | Return repr(self).\n", | |
" | \n", | |
" | __rmul__(self, value, /)\n", | |
" | Return value*self.\n", | |
" | \n", | |
" | count(self, value, /)\n", | |
" | Return number of occurrences of value.\n", | |
" | \n", | |
" | index(self, value, start=0, stop=9223372036854775807, /)\n", | |
" | Return first index of value.\n", | |
" | \n", | |
" | Raises ValueError if the value is not present.\n", | |
" | \n", | |
" | ----------------------------------------------------------------------\n", | |
" | Static methods defined here:\n", | |
" | \n", | |
" | __new__(*args, **kwargs) from builtins.type\n", | |
" | Create and return a new object. See help(type) for accurate signature.\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"help(tuple)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now we can try out `reduce`:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"10" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"reduce(add, [3, 3, 2, 2])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"36" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"reduce(mul, [3, 3, 2, 2])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<function _operator.mul(a, b, /)>" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"mul" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"ename": "TypeError", | |
"evalue": "mul expected 2 arguments, got 0", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-8-2bd5fda91d57>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[0;31mTypeError\u001b[0m: mul expected 2 arguments, got 0" | |
] | |
} | |
], | |
"source": [ | |
"mul()" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.7.1" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment