On 03/06/2013 09:05 PM, DoanVietTrungAtGmail wrote:
Once a csv file has been read by a csv reader (such as DictReader), it's
no longer a csv file.


That was an "Aha!" moment for me. The file is on disk, each row of it is in
memory as a list or dict, and it's the list or dict that matters. It's so
obvious now. Thanks Dave.



a namedtuple is probably exactly what you want.


I read this as meaning that while tuples themselves are immutable, to
effectively modify it I simply delete it and replace it with a new tuple
with new values. Another 'Aha!'


A collections.namedtuple is not the same as a tuple. The items in it can be addressed either by index, or by name. But each instance of the tuple does *not* waste space duplicating those names. The names are stored once per type of namedtuple

http://docs.python.org/2/library/collections.html#collections.namedtuple

Look at the example following the comment:
""" Named tuples are especially useful for assigning field names to result tuples returned by the csv or sqlite3 modules:"

And an instance created through collections.namedtuple has a useful method:

somenamedtuple._replace(kwargs)
Return a new instance of the named tuple replacing specified fields with new values:

--
DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to