{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Python Introduction: Indexing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `range` function lets us build a list of numbers." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(range(10, 20))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice anything funny?\n", "\n", "Python uses this convention everywhere." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "list" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = list(range(10, 20))\n", "type(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's talk about indexing.\n", "\n", "Indexing in Python starts at 0." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And goes from there." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "11" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[1]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "12" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What do negative numbers do?" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "19" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[-1]" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "18" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[-2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can get a sub-list by *slicing*." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[13, 14, 15, 16]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[3:7]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Start and end are optional." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[13, 14, 15, 16, 17, 18, 19]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[3:]" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[10, 11, 12]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[:3]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, notice how the end entry is not included:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[10, 11, 12]\n", "13\n" ] } ], "source": [ "print(a[:3])\n", "print(a[3])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Slicing works on any collection type! (`list`, `tuple`, `str`, `numpy` array)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'357'" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = \"CS357\"\n", "a[-3:]" ] } ], "metadata": {}, "nbformat": 4, "nbformat_minor": 0 }