0% found this document useful (0 votes)
35 views

Introduction To Computation and Programming Using Python, Revised - Guttag, John v..75

The document discusses lists and mutability in Python. It explains that lists are ordered sequences of values indexed like tuples, but defined using square brackets. The key difference between lists and tuples is that lists are mutable, meaning the elements within a list can be modified, unlike immutable tuples and strings. An example shows a list being indexed and sliced using square brackets in different ways.

Uploaded by

ZhichaoWang
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views

Introduction To Computation and Programming Using Python, Revised - Guttag, John v..75

The document discusses lists and mutability in Python. It explains that lists are ordered sequences of values indexed like tuples, but defined using square brackets. The key difference between lists and tuples is that lists are mutable, meaning the elements within a list can be modified, unlike immutable tuples and strings. An example shows a list being indexed and sliced using square brackets in different ways.

Uploaded by

ZhichaoWang
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

58

Chapter 5. Structured Types, Mutability, and Higher-Order Functions


Consider, for example the function
def findExtremeDivisors(n1, n2):
"""Assumes that n1 and n2 are positive ints
Returns a tuple containing the smallest common
divisor > 1 and the largest common divisor of n1
and n2"""
divisors = () #the empty tuple
minVal, maxVal = None, None
for i in range(2, min(n1, n2) + 1):
if n1%i == 0 and n2%i == 0:
if minVal == None or i < minVal:
minVal = i
if maxVal == None or i > maxVal:
maxVal = i
return (minVal, maxVal)

The multiple assignment statement


minDivisor, maxDivisor = findExtremeDivisors(100, 200)

will bind minDivisor to 2 and maxDivisor to 100.

5.2

Lists and Mutability


Like a tuple, a list is an ordered sequence of values, where each value is
identified by an index. The syntax for expressing literals of type list is similar
to that used for tuples; the difference is that we use square brackets rather than
parentheses. The empty list is written as [], and singleton lists are written
without that (oh so easy to forget) comma before the closing bracket. So, for
example, the code,
L = ['I did it all', 4, 'love']
for i in range(len(L)):
print L[i]

produces the output,


I did it all
4
love

Occasionally, the fact that square brackets are used for literals of type list,
indexing into lists, and slicing lists can lead to some visual confusion. For
example, the expression [1,2,3,4][1:3][1], which evaluates to 3, uses the
square brackets in three different ways. This is rarely a problem in practice,
because most of the time lists are built incrementally rather than written as
literals.
Lists differ from tuples in one hugely important way: lists are mutable. In
contrast, tuples and strings are immutable. There are many operators that can
be used to create objects of these immutable types, and variables can be bound
to objects of these types. But objects of immutable types cannot be modified.
On the other hand, objects of type list can be modified after they are created.
The distinction between mutating an object and assigning an object to a variable
may, at first, appear subtle. However, if you keep repeating the mantra, In

You might also like