I have another question.
How would like to be able to add the contents on the values for one key.
key['20001']:[978, 345]
How can I do this?
Thanks,
Ron
On Thu, Aug 28, 2008 at 11:56 AM, Bruno Desthuilliers
[EMAIL PROTECTED] wrote:
norseman a écrit :
Terry Reedy wrote:
Ron Brennan wrote:
Hello,
How would I create a dictionary that contains multiple values for one
key.
Make the value a collection object (set or list if you plan to add and
delete).
I'd also like the key to be able to have duplicate entries.
Dict keys must be hashable and unique.
tjr
--
http://mail.python.org/mailman/listinfo/python-list
First part I understand, second is still giving me a problem.
For some reason I still want keys to be dbf column headers.
like:
name:address:zip so forth
--- --- --
guy: unknown:0
girl: 123 tiny street:12345
boy:321 here:3
gal:999 over there: 5
so forth
Thus one key has many values. And you can then index on whatever key(s)
you wish - name,zip...
You can either use 1/ a list of dicts, or 2/ a dict mapping keys to lists.
1/
records = [
{name:guy, address:unknown,zip:0},
{name:girl, address:123 tiny street,zip:12345},
{name:boy, address:321 here,zip:3},
{name:gal, address:999 over there,zip:5},
]
keys = (name, address, zip)
print :.join(keys)
print - * len(:.join(keys))
for record in records:
data = [record[key] for key in keys]
print :.join(data)
2/
records = dict(
name=[guy, girl, boy, gal],
address=[unknown,123 tiny street,321 there,999 over there],
zip=[0, 12345, 3, 5]
)
keys = (name, address, zip)
nb_records = len(records[keys[0]])
print :.join(keys)
print - * len(:.join(keys))
for i in xrange(nb_records):
data = [data[key][i] for key in keys]
print :.join(data)
You are of course entitled the right to prefer the second solution, but
then I hope I'll never have to maintain your code, since it's obviously not
an appropriate data structure.
With billions plus records,
With billions plus records, it may be time to move to a serious RDBMS.
Which btw will provide solution 1, or a lighter version of it using a list
of tuples, ie:
cursor = connection.cursor()
cursor.execute(select name, address, zip from peoples)
records = cursor.fetchall()
# at this time, you have :
#records = [
# (guy, unknown,0,),
# (girl, 123 tiny street,12345,),
# (boy, 321 here,3,),
# (gal, 999 over there, 5,),
#]
(snip)
OK - I know I missed the whole concept of a Python Dictionary.
Bad thing for you, since it's the central datastructure in Python.
I haven't read anything as yet that gives a clear picture of what it is and
what it is for.
Then you failed to read the FineManual's tutorial, which is where you
should have started:
http://docs.python.org/tut/node7.html#SECTION00750
Do yourself a favour : read the above first, then if you still have
questions about dicts, we'll gladly try to help.
And do yourself another favour : learn about SQL, relational model and
RDBMS.
(snip description of why the OP *really* wants a RDBMS)
--
http://mail.python.org/mailman/listinfo/python-list
--
FYI, my email address is changing. My rogers account will be deactivated
shortly. From now on please use:
[EMAIL PROTECTED]
--
http://mail.python.org/mailman/listinfo/python-list