Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 1st, 2012  |  syntax: None  |  size: 1.13 KB  |  hits: 17  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Python: Appending to a list in a dictionary
  2. x1    y1    z1
  3. x1    y2    z2
  4. x2    y3    z3
  5.        
  6. data_str = """x1    y1    z1
  7.               x1    y2    z2
  8.               x2    y3    z3"""
  9.        
  10. data_list = [d.split() for d in data_str.splitlines()] # [['x1', 'y1', 'z1'], ['x1', 'y2', 'z2'], ['x2', 'y3', 'z3']]
  11.        
  12. from collections import defaultdict
  13. data_dict = defaultdict(list)
  14. for data_row in data_list: # E.g., data_row = ['x1', 'y1', 'z1']
  15.    data_dict[data_row[0]].append(data_row[1:])
  16. print data_dict # defaultdict(<type 'list'>, {'x2': [['y3', 'z3']], 'x1': [['y1', 'z1'], ['y2', 'z2']]})
  17.        
  18. def makeKeyValuePair(tokens):
  19.     return tokens[0], tokens[1:]
  20.  
  21. print dict(makeKeyValuePair(line.rstrip().split()) for line in fileObject)
  22.        
  23. from collections import defaultdict
  24. d = defaultdict(list)
  25.  
  26. for line in fileObject:
  27.     tokens = line.rstrip().split()
  28.     d[tokens[0]].append(tokens[1:])
  29.        
  30. d={}
  31. for line in file:
  32.     split = line.strip().split(" ")
  33.     if not d.has_key(split[0]): d[split[0]] = []
  34.     d[split[0]].append(split[1:])
  35.        
  36. result = { }
  37. for line in lines:
  38.     terms = line.split()
  39.     result.setdefault(terms[0], []).append(terms[1:])