Mercurial > hg > problem6
changeset 2:3632502b8af1 draft
parseinput: replace lists with namedtuplese
It improves readability of the code.
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Tue, 10 Mar 2015 19:51:14 -0400 |
parents | 15944d95f399 |
children | c683f80bc858 |
files | optim.py |
diffstat | 1 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/optim.py +++ b/optim.py @@ -1,5 +1,10 @@ #!/usr/bin/env python +from collections import namedtuple + +Machine = namedtuple("Machine", ["day", "buy", "sell", "profit"]) +Case = namedtuple("Case", ["machines", "days", "capital"]) + def parseinput(fname): """ Parse the input file, forget about input validation @@ -11,11 +16,10 @@ if header == [0, 0, 0]: return cases N = header[0] - case = {"header": header, - "machines": []} + case = Case([], header[1], header[2]) for i in range(0, N): - machine = [int(x) for x in f.readline().split()] - case["machines"].append(machine) + machine = Machine(*[int(x) for x in f.readline().split()]) + case.machines.append(machine) cases.append(case) def main():