New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
to improve documentation for join() (str method) #66891
Comments
This issue should go in the Documentation component but that is not an option in the issue tracker. Suggestion to improve documentation for join() (str method). Applies to versions 2.7.5, 3.3.6, 3.5.0a0. --quote str.join(iterable) Returns a string. Uses the string str to join strings from >>> # the iterable consists of number
>>> try:
>>> print "-".join([0, 1, 2, 3])
>>> except TypeError:
>>> print "A non-string is found in the iterable."
A non-string is found in the iterable.
>>> # the iterable consists of string
>>> try:
>>> print ", ".join(["x", "y", "z", "0", "1", "2", "3"])
>>> print " - ".join(["x", "y", "z", "0", "1", "2", "3"])
>>> print " + ".join(["x", "y", "z", "0", "1", "2", "3"])
>>> except TypeError:
>>> print "A non-string is found in the iterable."
x, y, z, 0, 1, 2, 3
x - y - z - 0 - 1 - 2 - 3
x + y + z + 0 + 1 + 2 + 3 --quote-- |
Seems awfully verbose relative to the standards of the other built-in methods. Can you explain what improvements you feel this provides? str.join isn't a particularly complex method, relative to the other str methods that have inline usage examples (e.g. the *strip methods, where it needs to be made clear that it's stripping by character, not string matching, or the interaction of arguments in str.split). |
The improvement on the original (doc v.2.7.5) lies in the removal of the repeated 'iterable' in the first sentence, and I have also shortened it to deliver only what is returned by the builtin method which was what I wanted to know without knowing how. I wrote up this reformulation as I would have like to read it. I believe the word "concatenation" is off putting to beginners without a formal background or wanting to acquire that, and there are people like me who prefer plain and simple words. "concatenation" could be used in a footnote to guide readers to more depth if that is something they want to have. The inline usage example serves to confirm what has been described/claimed. --original: doc v.2.7.5 str.join(iterable) Return a string which is the concatenation of the strings in the iterable iterable. The separator between elements is the string providing this method. |
At least the "iterable iterable" should be fixed. However, as Josh said, the proposed wording is verbose. Aim for the smallest number of words that gets the job done. |
Aim for the fewest syllables in the words without losing meaning or good taste. |
Current documentation looks good to me and not needing changes (except fixing the doubled "iterable"). Proposed change looks incorrect to me. No parameter named "str" is provided in this method. See also the docstring of str.join. |
Raymond, in the review comments on #156 Xiang noted that the current apparently duplicated iterable isn't entirely redundant:
"Return a string which is the concatenation of the strings in the :term:`iterable` *iterable*." So if we're going to drop one of them, it should probably be the link to the term, rather than the parameter name: "Return a string which is the concatenation of the strings in *iterable*." Does that sound reasonable to you? |
Noting for the record: Marco Buttu proposed my suggested approach on the PR back in early March. |
A reference to the iterable term was added in bpo-7116 when str.join() started accepting arbitrary iterables rather than just sequences. |
Raymond, I went ahead and accepted the patch to remove the "iterable iterable" phrasing by only referencing the parameter name and dropping the link to the term definition. Do you think that's sufficient to fully resolve the request here, or would you prefer to see further changes made? |
Thanks Nick. That will suffice. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: