<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 11, 2014 at 12:47 PM, Stephen Hansen <span dir="ltr"><<a href="mailto:me+python@ixokai.io" target="_blank">me+python@ixokai.io</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yes, sep.join(list) is a bit of a weird construct, but its one thing to learn, and its not a hard one to teach at that. In fact, it makes very logical sense once you explain it and makes people think of things more Pythonically after. I say from experience, not in theory. But, string.split(sep) is very natural. You seem to think that they need to be in the same order to be obvious but I don't see why nor do I think any of the alternatives are not without problems that are bigger issues.</blockquote>
</div><br>I am not suggesting any changes to str.join or str.split methods.  I am just arguing that sum(list_of_strings, '') should be allowed by the language and its performance is a matter of the quality of implementation.  Once you learn that string addition is concatenation in Python, it is natural to "sum" lists of Python strings regardless of whether  it makes sense in your native language.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">sep.join(list) is not such a weird construct when sep is non-empty - it is the sep='' case which is weird and non-obvious.  (Note that someone in this thread suggested demonstrating s == sep.join(s.split(sep)) invariant as a teaching tool, but this invariant fails when sep is empty.)  When you are tasked with finding s1 + s2 + ... + sN given [s1, s2, ..., sN], it is sum that first comes to mind, not join.  The situation is different when you have a separator to begin with, but when you don't using an empty separator feels like a performance hack in the absence of an efficient natural solution.</div>
</div>