title: Read a tab separated file with first column as key and the rest as values
body: <p>I have a tab separated file with <strong>1 billion lines</strong> of these (Imagine 200 columns, instead of 3):</p>
  
  <pre><code>abc -0.123  0.6524  0.325
  foo -0.9808 0.874   -0.2341 
  bar 0.23123 -0.123124   -0.1232
  </code></pre>
  
  <p>I want to create a dictionary where the string in the first column is the key and the rest are the values. I've been doing it like this but it's computationally expensive:</p>
  
  <pre><code>import io
  
  dictionary = {}
  
  with io.open('bigfile', 'r') as fin:
      for line in fin:
          kv = line.strip().split()
          k, v = kv[0], kv[1:]
          dictionary[k] = list(map(float, v))
  </code></pre>
  
  <p>How else can I do get the desired dictionary? Actually a numpy array would be more appropriate than a list of floats for the value. </p>