On 2011-10-06 05:46, lina wrote:
On Thu, Oct 6, 2011 at 4:33 AM, Prasad, Ramit<ramit.pra...@jpmorgan.com>wrote:
Dictionaries {} are containers for key/value based pairs like { key :
value, another_key : value(can be same or repeated) }
For example:
{'B': [0, 0, 0, 0, 0, 0], 'E': [2, 1, 4, 0, 1, 0]}
The keys here are 'B' and 'E'. The values here are [0, 0, 0, 0, 0, 0] (for
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
key 'B') and [2, 1, 4, 0, 1, 0] (for key 'E')
def writeonefiledata(outname,results):
outfile = open(outname,"w")
for key in results:
return outfile.write(results[key])
$ python3 counter-vertically-v2.py
Traceback (most recent call last):
File "counter-vertically-v2.py", line 43, in<module>
dofiles(".")
File "counter-vertically-v2.py", line 12, in dofiles
processfile(filename)
File "counter-vertically-v2.py", line 29, in processfile
writeonefiledata(base+OUTFILEEXT,results)
File "counter-vertically-v2.py", line 39, in writeonefiledata
return outfile.write(results[key])
TypeError: must be str, not list
^^^^^^^^^^^^^^^^^^^^^
The error message tells you, that "results[key]" is a list but "write"
just excepts a string. (see Ramit's explanation above).
You have to convert the list values to a string.
BTW: You shouldn't return the write operation because that will exit
your function after the first iteration.
def writeonefiledata(outname,results):
outfile = open(outname,"w")
for key, value in results.iteritems():
return outfile.write(key)
$ python3 counter-vertically-v2.py
Traceback (most recent call last):
File "counter-vertically-v2.py", line 43, in<module>
dofiles(".")
File "counter-vertically-v2.py", line 12, in dofiles
processfile(filename)
File "counter-vertically-v2.py", line 29, in processfile
writeonefiledata(base+OUTFILEEXT,results)
File "counter-vertically-v2.py", line 38, in writeonefiledata
for key, value in results.iteritems():
AttributeError: 'dict' object has no attribute 'iteritems'
In Python 3 there is no "dict.iteritems()" any more:
http://docs.python.org/py3k/whatsnew/3.0.html#views-and-iterators-instead-of-lists
Use "dict.items()" instead
Bye, Andreas
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor