On Thu, Aug 26, 2004, David Abrahams wrote: > > I just discovered the following behavior: > > C:\Documents and Settings\dave>python > Python 2.3 (#46, Aug 25 2003, 18:37:29) [MSC v.1200 32 bit (Intel)] on win32 > Type "help", "copyright", "credits" or "license" for more information. > >>> prefix = ['foo', 'bar', 'baz'] > >>> prefix += 'bomb' # meant to write prefix += [ 'bomb' ] > >>> prefix > ['foo', 'bar', 'baz', 'b', 'o', 'm', 'b'] > >>> > > Is it new and/or intentional? I would have expected an error from the > +=. I was very surprised when my error "passed silently". >>> l = ['foo'] >>> l += ('bar', 'baz') >>> l ['foo', 'bar', 'baz'] Augmented assignment for lists works with any sequence type (and probably iterators, too, but I didn't check). Strings are a sequence type, which occasionally has unintended consequences. -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "To me vi is Zen. To use vi is to practice zen. Every command is a koan. Profound to the user, unintelligible to the uninitiated. You discover truth everytime you use it." --reddy at lion.austin.ibm.com
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