On Fri, Nov 25, 2011 at 5:06 PM, Steven D'Aprano <st...@pearwood.info> wrote: > lina wrote: >>>>> >>>>> pairs >> >> {('66', '69'): 217, ('69', '66'): 75, ('64', '71'): 25} >> >> >> such as here ('66', '69') and ('69', '66') is one key, >> >> I wanna keep only one and add the value of those two keys, above is a >> very simple example: > > > Which one do you want to keep? > It does not matter, the order is not important,
> If the order ('66', '69') is unimportant, you should use a frozenset instead > of a tuple. In your code, where you set the pairs in the first place, > instead of doing: > > pair = ('66', '69') # however you build the pair > pairs[pair] = value > > (or how ever you set the initial values), change it to this: > > pair = frozenset(('66', '69')) > pairs[pair] = pairs.get(pair, 0) + value I don't get this "pairs.get" part. pairs[pair]=pairs.get(pair,0)+parts[2] TypeError: unsupported operand type(s) for +: 'int' and 'str' or line in f.readlines(): parts=line.split() #pair=set((parts[0],parts[1])) if (parts[0],parts[1]) not in dehydrons.keys(): dehydrons[(parts[0],parts[1])]=parts[2] occurence[(parts[0],parts[1])]=1 pair=frozenset(('parts[0]','parts[1]')) pairs[pair]=pairs.get(pair,0)+parts[2] else: occurence[(parts[0],parts[1])]+=1 I upload the file in: https://docs.google.com/open?id=0B93SVRfpVVg3NTg5YTkwMGUtMzdiNi00ZGI2LWE5ZGYtMTFmMTc0OTZhMzZl https://docs.google.com/open?id=0B93SVRfpVVg3NGQwZDRhNDMtMDUzZi00NDIxLWE2MDAtZGM0ZWEzZDczYTMz > > > > > -- > Steven > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor