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():