2016-10-13 5 views
0

ich geschrieben habe, habe diesen Code, die eine KlasseRückkehr ein Wörterbuch aus einer Datei

class OrderRecord: 
"""Defines an OrderRecord class, suitable for use in keeping track of order records""" 
    import tools2 
    def __init__(self, string): 
     """Creates a new OrderRecord object""" 
     string = string.split(',') 
     self.date = string[0] 
     self.location = string[1] 
     self.name = string[2] 
     self.colour = string[3] 
     self.order_num = string[4] 
     self.cost = 0 


    def cost_of_order(self): 
     """Creates a list of the name and adds up the cost of each letter""" 
     letter = list(self.name) 
     for let in letter: 
      self.cost = self.cost + self.tools2.letter_price(let, self.colour) 
     return self.cost 


    def __str__(self): 
     """Calls the cost_of_order function and returns the split string in the required format""" 
     self.cost = self.cost_of_order() 
     return("Date:  {0}\nLocation: {1}\nName:  {2}\nColour: \ 
    {3}\nOrder Num: {4}\nCost:  {5:.2f}".format(self.date, self.location, \ 
    self.name, self.colour, self.order_num, self.cost)) 

Jetzt muss ich eine Funktion schreiben, die eine Datei mit folgendem Inhalt lautet:

20130902,Te Rakipaewhenua,Vinas,parauri,8638 
20130909,Te Papaioea,McClary,kikorangi,11643 
20131215,Kapiti,Labrie,kikorangi,65291 
20141106,Waihopai,Labrie,ma,57910 

und gibt eine Wörterbuch, das den Speicherort als Schlüssel und Listen von OrderRecords als Werte enthält.

Ich weiß, dass dies nicht zu schwer für eine Aufgabe ist, aber ich habe eine Weile daran festgemacht, weil ich nicht verstehen kann, was ich dafür tun soll.

Jede Hilfe wäre willkommen.

+1

Bitte korrigieren Sie den Codeeinzug. Welche Spalte in der Datei beschreibt den Speicherort? – inspectorG4dget

+0

Entschuldigung, es ist die zweite Spalte. –

Antwort

0

Vielleicht so etwas. Es ist nicht die Lösung, aber es hat was Sie brauchen mit einigen Modifikationen.

import collections  

dct_result = collections.defaultdict(list) 
for line in open('file_path'): 
    fields = line.split(',') 
    # index 1 being the second column 
    dct_result[field(1)].append(OrderRecord(some args)) 
Verwandte Themen