At 12:53 19.05.2003 +0000, Luke Kenneth Casson Leighton wrote: >jeff, > >beat bolli's code example: > > count[word] = count.get(word, 0) + 1 > >i think best illustrates what issue you are trying to raise. > >okay, we know there are two issues so let's give an example >that removes one of those issues: > > count = {} > > count[word] = count.get(word, []) + ['hello'] > >the issue is that the difference between the above 'hello' >example and this: > > count.get(word, []) += ['hello'] > >is that you don't know what STORE to use after the use of get() >in the second example, but you do in the first example because >it's explicity set out. > >so, does this help illustrate what might be done? > >if it's possible to return a result and know what should be done >with it, then surely it should be possible to return a result from >a += "function" and know what should be done with it? > >l. >>> def refiadd(r,v): # r+=v, r is a reference, not a an lvalue ... if hasattr(r.__class__,'__iadd__'): ... r.__class__.__iadd__(r,v) ... else: ... raise ValueError,"non-sense" ... >>> greetings={} >>> refiadd(greetings.setdefault('susy',[]),['hello']) # greetings.setdefault('s usy',[]) += ['hello'] >>> refiadd(greetings.setdefault('susy',[]),['!']) # greetings.setdefault('susy' ,[]) += ['!'] >>> greetings {'susy': ['hello', '!']} >>> refiadd(greetings.setdefault('betty',1),1) # greetings.setdefault('susy',1) += 1 Traceback (most recent call last): File "<stdin>", line 1, in ? File "<stdin>", line 5, in refiadd ValueError: non-sense regards.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4