fixed the issue in strings/join.py (#12434)

* fixed the issue in strings/join.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update join.py

* Update join.py

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Maxim Smolskiy <mithridatus@mail.ru>
This commit is contained in:
RajdeepBakolia2004 2024-12-29 19:05:33 +05:30 committed by GitHub
parent 2d68bb50e5
commit 972a5c1e43
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -24,6 +24,8 @@ def join(separator: str, separated: list[str]) -> str:
'a'
>>> join(" ", ["You", "are", "amazing!"])
'You are amazing!'
>>> join(",", ["", "", ""])
',,'
This example should raise an
exception for non-string elements:
@ -37,15 +39,33 @@ def join(separator: str, separated: list[str]) -> str:
'apple-banana-cherry'
"""
joined = ""
# Check that all elements are strings
for word_or_phrase in separated:
# If the element is not a string, raise an exception
if not isinstance(word_or_phrase, str):
raise Exception("join() accepts only strings")
joined: str = ""
"""
The last element of the list is not followed by the separator.
So, we need to iterate through the list and join each element
with the separator except the last element.
"""
last_index: int = len(separated) - 1
"""
Iterate through the list and join each element with the separator.
Except the last element, all other elements are followed by the separator.
"""
for word_or_phrase in separated[:last_index]:
# join the element with the separator.
joined += word_or_phrase + separator
# Remove the trailing separator
# by stripping it from the result
return joined.strip(separator)
# If the list is not empty, join the last element.
if separated != []:
joined += separated[last_index]
# Return the joined string.
return joined
if __name__ == "__main__":