Created
September 12, 2017 22:12
-
-
Save RenSys/aefc67f631ab93822934b3475c8f6a79 to your computer and use it in GitHub Desktop.
Python Standard - deque - queues with tools
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": [ | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T21:56:17.125573Z", | |
"end_time": "2017-09-12T21:56:17.131476Z" | |
}, | |
"trusted": true, | |
"collapsed": true | |
}, | |
"cell_type": "code", | |
"source": "import collections", | |
"execution_count": 3, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T21:59:05.455871Z", | |
"end_time": "2017-09-12T21:59:05.465276Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "dq_nums = collections.deque([1, 2, 3, 4, 5])\nprint(dq_nums)", | |
"execution_count": 9, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque([1, 2, 3, 4, 5])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Strings" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:00:21.838992Z", | |
"end_time": "2017-09-12T22:00:21.847760Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "dq_strings = collections.deque('aabcdefg')\nprint(dq_strings)", | |
"execution_count": 13, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque(['a', 'a', 'b', 'c', 'd', 'e', 'f', 'g'])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Iterable" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:00:23.622774Z", | |
"end_time": "2017-09-12T22:00:23.634283Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "for i in dq_strings:\n print(i)", | |
"execution_count": 14, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "a\na\nb\nc\nd\ne\nf\ng\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Count number of times search term appears in queue\nSupports many methods" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:00:25.220122Z", | |
"end_time": "2017-09-12T22:00:25.228134Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq_strings.count('a'))", | |
"execution_count": 15, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "2\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Add items to the right of the queue" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:09:14.097032Z", | |
"end_time": "2017-09-12T22:09:14.110175Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq_strings)\nprint('-----')\ndq_strings.extend([1, 2, 3, 4, 5])\nprint(dq_strings)", | |
"execution_count": 51, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque(['%', '$', '#', '@', '!', '%', '$', '#', '@', '!', '%', '$', '#', '@', '!', '5th place', '5th place', 'a', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 1, 2, 3, 4, 5])\n-----\ndeque(['%', '$', '#', '@', '!', '%', '$', '#', '@', '!', '%', '$', '#', '@', '!', '5th place', '5th place', 'a', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 1, 2, 3, 4, 5, 1, 2, 3, 4, 5])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Add items to the left of the queue" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:08:50.278680Z", | |
"end_time": "2017-09-12T22:08:50.291433Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq_strings)\nprint('-----')\ndq_strings.extendleft('!@#$%')\nprint(dq_strings)", | |
"execution_count": 50, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque(['%', '$', '#', '@', '!', '%', '$', '#', '@', '!', '5th place', '5th place', 'a', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 1, 2, 3, 4, 5])\n-----\ndeque(['%', '$', '#', '@', '!', '%', '$', '#', '@', '!', '%', '$', '#', '@', '!', '5th place', '5th place', 'a', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 1, 2, 3, 4, 5])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Insert item at index x" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:08:34.774877Z", | |
"end_time": "2017-09-12T22:08:34.785133Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq_strings)\ndq_strings.insert(5, '5th place')\nprint(dq_strings)", | |
"execution_count": 48, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque(['%', '$', '#', '@', '!', '5th place', 'a', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 1, 2, 3, 4, 5])\ndeque(['%', '$', '#', '@', '!', '5th place', '5th place', 'a', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 1, 2, 3, 4, 5])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Return index of first match from search term (option range argument for start/stop of index)" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:02:11.565515Z", | |
"end_time": "2017-09-12T22:02:11.573983Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq_strings.index('g')) # ('d', 0, 10)", | |
"execution_count": 20, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "13\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Reverse queue, does not return anything" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:07:03.087503Z", | |
"end_time": "2017-09-12T22:07:03.097500Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "dq = collections.deque([1, 2, 3])\nprint(dq)", | |
"execution_count": 42, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque([1, 2, 3])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:09:28.576134Z", | |
"end_time": "2017-09-12T22:09:28.588930Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq)\nprint('-----')\ndq.reverse()\nprint(dq)", | |
"execution_count": 52, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque([1, 3])\n-----\ndeque([3, 1])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:03:11.892562Z", | |
"end_time": "2017-09-12T22:03:11.898295Z" | |
} | |
}, | |
"cell_type": "markdown", | |
"source": "### remove and return element from the right" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:09:38.358558Z", | |
"end_time": "2017-09-12T22:09:38.373060Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq)\nprint('-----')\nprint(dq.pop())\nprint('-----')\nprint(dq)", | |
"execution_count": 53, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque([3, 1])\n-----\n1\n-----\ndeque([3])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Remove and return element from the left" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:09:48.664804Z", | |
"end_time": "2017-09-12T22:09:48.680042Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq)\nprint('-----')\nprint(dq.popleft())\nprint('-----')\nprint(dq)", | |
"execution_count": 54, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque([3])\n-----\n3\n-----\ndeque([])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Remove first match of specified value" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:10:05.249305Z", | |
"end_time": "2017-09-12T22:10:05.265837Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "dq = collections.deque([1, 2, 3])\nprint(dq)\ndq.remove(2)\nprint('-----')\nprint(dq)", | |
"execution_count": 56, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque([1, 2, 3])\n-----\ndeque([1, 3])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Rotate elements right x spaces, or left -x spaces" | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:11:12.841220Z", | |
"end_time": "2017-09-12T22:11:12.850628Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "dq = collections.deque('*----')\nprint(dq)", | |
"execution_count": 62, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque(['*', '-', '-', '-', '-'])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:11:13.468268Z", | |
"end_time": "2017-09-12T22:11:13.479699Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq)\nprint('-----')\ndq.rotate(1)\nprint(dq)", | |
"execution_count": 63, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque(['*', '-', '-', '-', '-'])\n-----\ndeque(['-', '*', '-', '-', '-'])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:11:15.537890Z", | |
"end_time": "2017-09-12T22:11:15.549493Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq)\ndq.rotate(1)\nprint('-----')\nprint(dq)", | |
"execution_count": 64, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque(['-', '*', '-', '-', '-'])\n-----\ndeque(['-', '-', '*', '-', '-'])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:11:17.713477Z", | |
"end_time": "2017-09-12T22:11:17.724999Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq)\ndq.rotate(1)\nprint('-----')\nprint(dq)", | |
"execution_count": 65, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque(['-', '-', '*', '-', '-'])\n-----\ndeque(['-', '-', '-', '*', '-'])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"ExecuteTime": { | |
"start_time": "2017-09-12T22:11:42.967202Z", | |
"end_time": "2017-09-12T22:11:42.980088Z" | |
}, | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "print(dq)\ndq.rotate(-1)\nprint('-----')\nprint(dq)\n", | |
"execution_count": 67, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "deque(['-', '-', '*', '-', '-'])\n-----\ndeque(['-', '*', '-', '-', '-'])\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": true | |
}, | |
"cell_type": "code", | |
"source": "", | |
"execution_count": null, | |
"outputs": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"name": "py36-test", | |
"display_name": "py36-test", | |
"language": "python" | |
}, | |
"language_info": { | |
"mimetype": "text/x-python", | |
"nbconvert_exporter": "python", | |
"name": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.1", | |
"file_extension": ".py", | |
"codemirror_mode": { | |
"version": 3, | |
"name": "ipython" | |
} | |
}, | |
"gist": { | |
"id": "", | |
"data": { | |
"description": "Python Standard - deque - queues with tools", | |
"public": true | |
} | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment