Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save RenSys/aefc67f631ab93822934b3475c8f6a79 to your computer and use it in GitHub Desktop.
Save RenSys/aefc67f631ab93822934b3475c8f6a79 to your computer and use it in GitHub Desktop.
Python Standard - deque - queues with tools
Display the source blob
Display the rendered blob
Raw
{
"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