198 lines
3.9 KiB
Plaintext
198 lines
3.9 KiB
Plaintext
|
|
{
|
||
|
|
"cells": [
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"# Python List Iteration\n",
|
||
|
|
"A variety of ways to iterate Lists, including for loop, while loop, enumerate."
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"----\n",
|
||
|
|
"The standard for loop works great if inside the loop you only need the item and not its index."
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 1,
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"name": "stdout",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"a\n",
|
||
|
|
"b\n",
|
||
|
|
"c\n",
|
||
|
|
"d\n",
|
||
|
|
"e\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"letters = ['a', 'b', 'c', 'd', 'e']\n",
|
||
|
|
"\n",
|
||
|
|
"for letter in letters:\n",
|
||
|
|
" print(letter)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"----\n",
|
||
|
|
"If you need the index inside the loop you can use range(len(list)). \n",
|
||
|
|
"Then you can always get the list item if needed by using the index."
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 2,
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"name": "stdout",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"letters 0 = a\n",
|
||
|
|
"letters 1 = b\n",
|
||
|
|
"letters 2 = c\n",
|
||
|
|
"letters 3 = d\n",
|
||
|
|
"letters 4 = e\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"for index in range(len(letters)):\n",
|
||
|
|
" print('letters', index, '=', letters[index])"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"----\n",
|
||
|
|
"Best option if you need both index and item inside the loop is to use Python's **enumerate** function. \n",
|
||
|
|
"Enumerate works in both Python 2.x and 3.x"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 3,
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"name": "stdout",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"letters 0 = a\n",
|
||
|
|
"letters 1 = b\n",
|
||
|
|
"letters 2 = c\n",
|
||
|
|
"letters 3 = d\n",
|
||
|
|
"letters 4 = e\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"for index, item in enumerate(letters):\n",
|
||
|
|
" print('letters', index, '=', item)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"Enumerate actually returns an iterable enumerate object, \n",
|
||
|
|
"which is a sequence of tuples of (index, item)."
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 4,
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"name": "stdout",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"(0, 'a')\n",
|
||
|
|
"(1, 'b')\n",
|
||
|
|
"<class 'enumerate'>\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"enum_obj = enumerate(letters)\n",
|
||
|
|
"print(next(enum_obj))\n",
|
||
|
|
"print(next(enum_obj))\n",
|
||
|
|
"print(type(enum_obj))"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"----\n",
|
||
|
|
"Probably the clumsiest way to iterate a list in Python -- the **while loop**. \n",
|
||
|
|
"Requires index initialization before list, and incrementation inside loop."
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 5,
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"name": "stdout",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"letters 0 = a\n",
|
||
|
|
"letters 1 = b\n",
|
||
|
|
"letters 2 = c\n",
|
||
|
|
"letters 3 = d\n",
|
||
|
|
"letters 4 = e\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"index = 0\n",
|
||
|
|
"while index < len(letters): \n",
|
||
|
|
" print('letters', index, '=', letters[index]) \n",
|
||
|
|
" index += 1"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": null,
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [],
|
||
|
|
"source": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"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.0"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"nbformat": 4,
|
||
|
|
"nbformat_minor": 2
|
||
|
|
}
|