Files
Python/Python List Iteration.ipynb

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 well if it is used 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
}