ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.04.2021

Просмотров: 3720

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Introduction to Python for Science, Release 0.9.23

way than for lists. The elements of lists and arrays are numbered consecutively, and to
access an element of a list or an array, you simply refer to the number corresponding
to its position in the sequence. The elements of dictionaries are accessed by “keys”,
which can be either strings or (arbitrary) integers (in no particular order). Dictionaries
are an important part of core Python. However, we do not make much use of them in this
introduction to scientific Python, so our discussion of them is limited.

3.1 Strings

Strings are lists of characters. Any character that you can type from a computer keyboard,
plus a variety of other characters, can be elements in a string. Strings are created by
enclosing a sequence of characters within a pair of single or double quotes. Examples of
strings include

"Marylyn"

,

"omg"

,

"good_bad_#5f>!"

,

"{0:0.8g}"

, and

"We

hold these truths ..."

. Caution: the defining quotes must

both

be single or

both

be double quotes.

Strings can be assigned variable names

In [1]:

a

=

"My dog’s name is"

In [2]:

b

=

"Bingo"

Strings can be concatenated using the “

+

” operator:

In [3]:

c

=

a

+

" "

+

b

In [4]:

c

Out[4]:

"My dog’s name is Bingo"

In forming the string

c

, we concatenated

three

strings,

a

,

b

, and a

string literal

, in this

case a space

" "

, which is needed to provide a space to separate string

a

from

b

.

You will use strings for different purposes: labeling data in data files, labeling axes in
plots, formatting numerical output, requesting input for your programs, as arguments in
functions,

etc

.

Because numbers—digits—are also alpha numeric characters, strings can be made up of
numbers:

In [5]:

d

=

"927"

In [6]:

e

=

927

The variable

d

is a string while the variable

e

is an integer. What do you think happens if

you try to add them by writing

d+e

? Try it out and see if you understand the result.

30

Chapter 3. Strings, Lists, Arrays, and Dictionaries


background image

Introduction to Python for Science, Release 0.9.23

3.2 Lists

Python has two data structures,

lists

and

tuples

, that consist of a list of one or more

elements. The elements of lists or tuples can be numbers or strings, or both. Lists (we will
discuss tuples later) are defined by a pair of

square

brackets on either end with individual

elements separated by commas. Here are two examples of lists:

In [1]:

a

=

[

0

,

1

,

1

,

2

,

3

,

5

,

8

,

13

]

In [2]:

b

=

[

5.

,

"girl"

,

2

+

0j

,

"horse"

,

21

]

We can access individual elements of a list using the variable name for the list with square
brackets:

In [3]:

b[

0

]

Out[3]:

5.0

In [4]:

b[

1

]

Out[4]:

’girl’

In [5]:

b[

2

]

Out[5]:

(

2

+

0j

)

The first element of

b

is

b[0]

, the second is

b[1]

, the third is

b[2]

, and so on. Some

computer languages index lists starting with 0, like Python and C, while others index
lists (or things more-or-less equivalent) starting with 1 (like Fortran and Matlab). It’s
important to keep in mind that Python uses the former convention: lists are

zero-indexed

.

The last element of this array is

b[4]

, because

b

has 5 elements. The last element can

also be accessed as

b[-1]

, no matter how many elements

b

has, and the next-to-last

element of the list is

b[-2]

,

etc

. Try it out:

In [6]:

b[

4

]

Out[6]:

21

In [7]:

b[

-

1

]

Out[7]:

21

In [8]:

b[

-

2

]

Out[8]:

’horse’

Individual elements of lists can be changed. For example:

In [9]:

b

Out[9]:

[

5.0

,

’girl’

, (

2

+

0j

),

’horse’

,

21

]

3.2. Lists

31


background image

Introduction to Python for Science, Release 0.9.23

In [10]:

b[

0

]

=

b[

0

]

+

2

In [11]:

b[

3

]

=

3.14159

In [12]:

b

Out[12]:

[

7.0

,

’girl’

, (

2

+

0j

),

3.14159

,

21

]

Here we see that 2 was added to the previous value of

b[0]

and the string

’horse’

was replaced by the floating point number

3.14159

. We can also manipulate individual

elements that are strings:

In [13]:

b[

1

]

=

b[

1

]

+

"s & boys"

In [14]:

b

Out[14]:

[

10.0

,

’girls & boys’

, (

2

+

0j

),

3.14159

,

21

]

You can also add lists, but the result might surprise you:

In [15]:

a

Out[15]:

[

0

,

1

,

1

,

2

,

3

,

5

,

8

,

13

]

In [16]:

a

+

a

Out[16]:

[

0

,

1

,

1

,

2

,

3

,

5

,

8

,

13

,

0

,

1

,

1

,

2

,

3

,

5

,

8

,

13

]

In [17]:

a

+

b

Out[17]:

[

0

,

1

,

1

,

2

,

3

,

5

,

8

,

13

,

10.0

,

’girls & boys’

, (

2

+

0j

),

3.14159, 21]

Adding lists concatenates them, just as the “

+

” operator concatenates strings.

3.2.1 Slicing lists

You can access pieces of lists using the

slicing

feature of Python:

In [18]:

b

Out[18]:

[

10.0

,

’girls & boys’

, (

2

+

0j

),

3.14159

,

21

]

In [19]:

b[

1

:

4

]

Out[19]:

[

’girls & boys’

, (

2

+

0j

),

3.14159

]

In [20]:

b[

3

:

5

]

Out[20]:

[

3.14159

,

21

]

You access a subset of a list by specifying two indices separated by a colon “

:

”. This

32

Chapter 3. Strings, Lists, Arrays, and Dictionaries


background image

Introduction to Python for Science, Release 0.9.23

is a powerful feature of lists that we will use often. Here are a few other useful slicing
shortcuts:

In [21]:

b[

2

:]

Out[21]:

[(

2

+

0j

),

3.14159

,

21

]

In [22]:

b[:

3

]

Out[22]:

[

10.0

,

’girls & boys’

, (

2

+

0j

)]

In [23]:

b[:]

Out[23]:

[

10.0

,

’girls & boys’

, (

2

+

0j

),

3.14159

,

21

]

Thus, if the left slice index is

0

, you can leave it out; similarly, if the right slice index is

the length of the list, you can leave it out also.

What does the following slice of an array give you?

In [24]:

b[

1

:

-

1

]

You can get the length of a list using Python’s

len

function:

In [25]:

len

(b)

Out[25]:

5

3.2.2 Creating and modifying lists

Python has functions for creating and augmenting lists. The most useful is the

range

function, which can be used to create a uniformly spaced sequence of integers. The
general form of the function is

range([start,] stop[, step])

, where the ar-

guments are all integers; those in square brackets are optional:

In [26]:

range

(

10

)

# makes a list of 10 integers from 0 to 9

Out[26]:

[

0

,

1

,

2

,

3

,

4

,

5

,

6

,

7

,

8

,

9

]

In [27]:

range

(

3

,

10

)

# makes a list of 10 integers from 3 to 9

Out[27]:

[

3

,

4

,

5

,

6

,

7

,

8

,

9

]

In [28]:

range

(

0

,

10

,

2

)

# makes a list of 10 integers from 0 to 9

# with increment 2

Out[28]:

[

0

,

2

,

4

,

6

,

8

]

You can add one or more elements to the beginning or end of a list using the “

+

” operator:

In [29]:

a

=

range

(

1

,

10

,

3

)

3.2. Lists

33


background image

Introduction to Python for Science, Release 0.9.23

In [30]:

a

Out[30]:

[

1

,

4

,

7

]

In [31]:

a

+=

[

16

,

31

,

64

,

127

]

In [32]:

a

Out[32]:

[

1

,

4

,

7

,

16

,

31

,

64

,

127

]

In [33]:

a

=

[

0

,

0

]

+

a

In [34]:

a

Out[34]:

[

0

,

0

,

1

,

4

,

7

,

16

,

31

,

64

,

127

]

You can insert elements into a list using slicing:

In [35]:

b

=

a[:

5

]

+

[

101

,

102

]

+

a[

5

:]

In [36]:

b

Out[36]:

[

0

,

1

,

1

,

4

,

7

,

101

,

102

,

16

,

31

,

64

,

127

]

3.2.3 Tuples

Finally, a word about tuples: tuples are lists that are

immutable

. That is, once defined, the

individual elements of a tuple cannot be changed. Whereas a list is written as a sequence
of numbers enclosed in

square

brackets, a tuple is written as a sequence of numbers

enclosed in

round

parentheses. Individual elements of a tuple are addressed in the same

way as individual elements of lists are addressed, but those individual elements cannot be
changed. All of this illustrated by this simple example:

In [37]:

c

=

(

1

,

1

,

2

,

3

,

5

,

8

,

13

)

In [37]:

c[

4

]

Out[38]:

5

In [39]:

c[

4

]

=

7

---------------------------------------------------------------------------

TypeError: ’tuple’ object does not support item assignment

When we tried to change

c[4]

, the system returned an error because we are prohibited

from changing an element of a tuple. Tuples offer some degree of safety when we want
to define lists of immutable constants.

34

Chapter 3. Strings, Lists, Arrays, and Dictionaries