vsoler wrote: > Hello, > > My code snippet reads data from excel ranges. First row and first > column are column headers and row headers respectively. After reding > the range I build a dict. > > ................'A'..............'B' > 'ab'............3................5 > 'cd'............7................2 > 'cd'............9................1 > 'ac'............7................2 > > d={('ab','A'): 3, ('ab','B'): 5, ('cd','A'): 7, ... > > However, as you can see there are two rows that start with 'cd', and > dicts, AFAIK do not accept duplicates.
Normall dicts are used if you want to access your data at a later point in time by the key name. Do you want to be able to do this? Then what would you expect to receive for d[('cd','A')] ? The first value? the second value? both values? Could you perhaps change further occurences of 'cd' with 'cd1' , 'cd2' , 'cd3', ... ? Not knowing your exact context makes it difficult to suggest solutions? perhaps you could switch to a list containing a tuple of (rowname,rowdict) l = [ ('ab', { 'A': 3 , 'B': 5 } ), 'cd', { 'A': 7 , 'B': 2 } ), 'cd', { 'A': 9 , 'B': 1 } ), 'ac', { ... } ] bye N > > What is the best workaround for this? Should I discard dicts? Should I > somehow have under 'cd'... a list of values? > > One of the difficulties I find here is that I want to be able to > easily sum all the values for each row key: 'ab', 'cd' and 'ac'. > However, using lists inside dicts makes it a difficult issue for me. > > What is the best approach for this problem? Can anybody help? -- http://mail.python.org/mailman/listinfo/python-list