My input file is:
-150 150 -90 130 1
-150 150 -150 170 1
-150 150 -110 140 1
-150 160 -80 -20 1
-150 170 -140 160 1
-150 170 -70 -40 1
-140 -170 -110 150 1
-140 130 -120 110 1
-140 140 160 -150 1
-140 160 -150 150 1
I need to create a python dictionary such that the key is the first two columns, and the value is another dictionary where key is 3+4 columns, and value is 5th column:
'-140 160' : {'-150 150' : 0.0188679245283019},
'-140 -170' : {'-110 150' : 0.0188679245283019},
'-150 170' : {'-140 160' : 0.0188679245283019, '-70 -40' : 0.0188679245283019},
'-150 160' : {'-80 -20' : 0.0188679245283019},
'-150 150' : {'-150 170' : 0.0188679245283019, '-110 140' : 0.0188679245283019}
So far I've been using a perl script to convert it to text that looks like what I show above, and then copy paste that text into my python code. (the value has become a fraction because I divided it by total sum, which was 56
from collections import defaultdict
bigdict = defaultdict(dict)
for ln in file:
a,b,c,d,e = ln.split()
bigdict[(a,b)][(c,d)] = e
If you want string keys, replace (a,b) with '%s %s' % (a, b) and similarly for (c,d).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With