[Tutor] populating an array or using a dictionary
Michael Langford
mlangford.cs03 at gtalumni.org
Sun Oct 21 21:50:18 CEST 2007
Using the attached foo.dat and no linebreaks, what you're doing works
perfectly:
dic2 = {}
for line in file('foo.dat'):
d, fs1, fs2, fs3, fs4, fs5, fs6, fs7, fs8, fs9, fs10, fs11, fs12, fs13,
fs14, fs15, fs16, fs17, fs18, fs19, fs20, fs21, fs22, fs23, fs24, fs25,
fs26, fs27, fs28, fs29, fs30, fs31, fs32, fs33, fs34, fs35, fs36, fs37,
fs38, fs39, fs40 = line.split()
dic2[d] = (float(d), float(fs1), float(fs2), float(fs3),
float(fs4), float(fs5), float(fs6), float(fs7),
float(fs8), float(fs9), float(fs10), float(fs11),
float(fs12), float(fs13), float(fs14), float(fs15),
float(fs16), float(fs17), float(fs18), float(fs19),
float(fs20), float(fs21), float(fs22), float(fs23),
float(fs24), float(fs25), float(fs26), float(fs27),
float(fs28), float(fs29), float(fs30), float(fs31),
float(fs32), float(fs33), float(fs34), float(fs35),
float(fs36), float(fs37), float(fs38), float(fs39),
float(fs40))
print dic2
A neater way to do it looks like:
dic2 = {}
countOfVars=40
for line in file('foo.dat'):
tokens = line.split()
dval = tokens[0]
ls = []
for i in range(1,countOfVars+1):
ls.append(float(tokens[i]))
dic2[dval]=tuple(ls)
print dic2
--Michael
On 10/21/07, Bryan Fodness < bryan.fodness at gmail.com> wrote:
>
> Here is my code.
>
> dic2 = {}
> for line in file('21Ex6MV_tmr.dat'):
> d, fs1, fs2, fs3, fs4, fs5, fs6, fs7, fs8, fs9, fs10,
> fs11, fs12, fs13, fs14, fs15, fs16, fs17, fs18, fs19,
> fs20, fs21, fs22, fs23, fs24, fs25, fs26, fs27, fs28,
> fs29, fs30, fs31, fs32, fs33, fs34, fs35, fs36, fs37,
> fs38, fs39, fs40 = line.split()
> dic2[d] = (float(d), float(fs1), float(fs2), float(fs3),
> float(fs4), float(fs5), float(fs6), float(fs7),
> float(fs8), float(fs9), float(fs10), float(fs11),
> float(fs12), float(fs13), float(fs14), float(fs15),
> float(fs16), float(fs17), float(fs18), float(fs19),
> float(fs20), float(fs21), float(fs22), float(fs23),
> float(fs24), float(fs25), float(fs26), float(fs27),
> float(fs28), float(fs29), float(fs30), float(fs31),
> float(fs32), float(fs33), float(fs34), float(fs35),
> float(fs36), float(fs37), float(fs38), float(fs39),
> float(fs40))
> print dic2[d]
>
> and, here is my error
>
> Check\eDoseCheck.py", line 44, in <module>
> d, fs1, fs2, fs3, fs4, fs5, fs6, fs7, fs8, fs9, fs10,
> NameError: name 'd' is not defined
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>
--
Michael Langford
Phone: 404-386-0495
Consulting: http://www.TierOneDesign.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20071021/e312d27e/attachment.htm
-------------- next part --------------
A non-text attachment was scrubbed...
Name: foo.dat
Type: application/octet-stream
Size: 4380 bytes
Desc: not available
Url : http://mail.python.org/pipermail/tutor/attachments/20071021/e312d27e/attachment.obj
More information about the Tutor
mailing list