In [1]:
from __future__ import print_function

In [2]:
filename = '20150410-dojo-prices.txt'

Show what is in the file.


In [3]:
print(open(filename).read())


IBM 3
AAPL 3.1415926
GOGL 10

Show how split method splits each line into a list.


In [4]:
for line in open(filename):
    print(line.split())


['IBM', '3']
['AAPL', '3.1415926']
['GOGL', '10']

Straightforward loop


In [5]:
max_price = 0.0
for line in open(filename):
    price = float(line.split()[1])
    max_price = max(max_price, price)
print(max_price)


10.0

Using a generator expression


In [6]:
max((float(line.split()[1]) for line in open(filename)))


Out[6]:
10.0

Functional approach


In [7]:
max(map(lambda line: float(line.split()[1]), open(filename)))


Out[7]:
10.0

In [8]:
max(map(float, map(lambda line: line.split()[1], open(filename))))


Out[8]:
10.0

In [9]:
max(map(float, map(lambda x: x[1] ,map(lambda line: line.split(), open(filename)))))


Out[9]:
10.0

min, max, sum, any, and all are some built-in reduce style functions.