{ "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", "\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 }