Issue 22702: to improve documentation for join() (str method) (original) (raw)

Created on 2014-10-22 22:37 by vy0123, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (15)

msg229841 - (view)

Author: Van Ly (vy0123) *

Date: 2014-10-22 22:37

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 iterable. Raises TypeError for non-string found in iterable including object of bytes.

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--

msg229851 - (view)

Author: Josh Rosenberg (josh.r) * (Python triager)

Date: 2014-10-23 04:00

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).

msg229852 - (view)

Author: Van Ly (vy0123) *

Date: 2014-10-23 04:21

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.

msg229853 - (view)

Author: Raymond Hettinger (rhettinger) * (Python committer)

Date: 2014-10-23 04:42

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.

msg229854 - (view)

Author: Van Ly (vy0123) *

Date: 2014-10-23 04:51

Aim for the fewest syllables in the words without losing meaning or good taste.

msg288073 - (view)

Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer)

Date: 2017-02-18 11:25

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.

msg291366 - (view)

Author: Alyssa Coghlan (ncoghlan) * (Python committer)

Date: 2017-04-09 09:55

Raymond, in the review comments on https://github.com/python/cpython/pull/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?

msg291367 - (view)

Author: Alyssa Coghlan (ncoghlan) * (Python committer)

Date: 2017-04-09 09:59

Noting for the record: Marco Buttu proposed my suggested approach on the PR back in early March.

msg291669 - (view)

Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer)

Date: 2017-04-14 15:26

A reference to the iterable term was added in when str.join() started accepting arbitrary iterables rather than just sequences.

msg294581 - (view)

Author: Alyssa Coghlan (ncoghlan) * (Python committer)

Date: 2017-05-27 05:44

New changeset 08e2f355d04d3cbea5751ce1275306ee3f569b32 by Nick Coghlan (Sanyam Khurana) in branch 'master': bpo-22702: Clarify documentation of str.join & bytes.join (GH-156) https://github.com/python/cpython/commit/08e2f355d04d3cbea5751ce1275306ee3f569b32

msg294582 - (view)

Author: Alyssa Coghlan (ncoghlan) * (Python committer)

Date: 2017-05-27 05:47

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?

msg294602 - (view)

Author: Raymond Hettinger (rhettinger) * (Python committer)

Date: 2017-05-27 16:49

Do you think that's sufficient to fully resolve the request here,

Thanks Nick. That will suffice.

msg294899 - (view)

Author: Mariatta (Mariatta) * (Python committer)

Date: 2017-06-01 02:48

New changeset 1721b06a78a4fd7942d9658ac8add6911a1a03e3 by Mariatta in branch '3.5': bpo-22702: Clarify documentation of str.join & bytes.join (GH-156) (GH-1896) https://github.com/python/cpython/commit/1721b06a78a4fd7942d9658ac8add6911a1a03e3

msg294900 - (view)

Author: Mariatta (Mariatta) * (Python committer)

Date: 2017-06-01 02:49

New changeset 9522159bc41f2be0f4aafd0fa182669876aca47f by Mariatta in branch '3.6': bpo-22702: Clarify documentation of str.join & bytes.join (GH-156) (GH-1897) https://github.com/python/cpython/commit/9522159bc41f2be0f4aafd0fa182669876aca47f

msg294901 - (view)

Author: Mariatta (Mariatta) * (Python committer)

Date: 2017-06-01 02:49

New changeset 9139f23464ed0f71cb0e34a535a5b7ddf7fad748 by Mariatta in branch '2.7': bpo-22702: Clarify documentation of str.join & bytes.join (GH-156) (GH-1898) https://github.com/python/cpython/commit/9139f23464ed0f71cb0e34a535a5b7ddf7fad748

History

Date

User

Action

Args

2022-04-11 14:58:09

admin

set

github: 66891

2017-06-01 02:50:00

Mariatta

set

stage: backport needed -> resolved

2017-06-01 02:49:33

Mariatta

set

messages: +

2017-06-01 02:49:03

Mariatta

set

messages: +

2017-06-01 02:48:30

Mariatta

set

nosy: + Mariatta
messages: +

2017-06-01 02:32:48

Mariatta

set

pull_requests: + <pull%5Frequest1976>

2017-06-01 02:29:59

Mariatta

set

pull_requests: + <pull%5Frequest1975>

2017-06-01 02:29:23

Mariatta

set

pull_requests: + <pull%5Frequest1974>

2017-06-01 02:26:19

Mariatta

set

stage: resolved -> backport needed
versions: + Python 3.6, Python 3.7, - Python 3.4

2017-05-27 16:49:24

rhettinger

set

status: open -> closed
resolution: fixed
messages: +

stage: resolved

2017-05-27 05:47:38

ncoghlan

set

messages: +

2017-05-27 05:44:43

ncoghlan

set

messages: +

2017-04-14 15:26:20

serhiy.storchaka

set

messages: +

2017-04-09 09:59:20

ncoghlan

set

messages: +

2017-04-09 09:55:54

ncoghlan

set

nosy: + xiang.zhang, ncoghlan
messages: +

2017-02-18 11:25:14

serhiy.storchaka

set

nosy: + serhiy.storchaka
messages: +

2017-02-18 11:12:13

CuriousLearner

set

pull_requests: + <pull%5Frequest120>

2014-10-23 04:51:02

vy0123

set

messages: +

2014-10-23 04:42:14

rhettinger

set

messages: +

2014-10-23 04:35:55

rhettinger

set

assignee: docs@python -> rhettinger

nosy: + rhettinger

2014-10-23 04:21:24

vy0123

set

messages: +

2014-10-23 04:00:41

josh.r

set

nosy: + josh.r
messages: +

2014-10-22 22:52:47

ned.deily

set

nosy: + docs@python, - ronaldoussoren, ned.deily

assignee: docs@python
components: + Documentation, - macOS
versions: + Python 3.4, - Python 3.3

2014-10-22 22:37:21

vy0123

create