From fa88559cab4aa2e935df97b8e2710b34402fc10f Mon Sep 17 00:00:00 2001 From: Rohan R Bharadwaj <89947037+Rohanrbharadwaj@users.noreply.github.com> Date: Mon, 18 Oct 2021 19:05:35 +0530 Subject: [PATCH] Create join.py (#5363) * Create join.py Because we have a split.py * Update join.py * Update join.py * Update join.py * Update join.py * Update join.py * Update strings/join.py Co-authored-by: John Law * Update join.py * Update join.py * Update join.py * Update join.py Co-authored-by: John Law --- strings/join.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 strings/join.py diff --git a/strings/join.py b/strings/join.py new file mode 100644 index 000000000..0cb88b760 --- /dev/null +++ b/strings/join.py @@ -0,0 +1,32 @@ +""" +Program to join a list of strings with a given separator +""" + + +def join(separator: str, separated: list) -> str: + """ + >>> join("", ["a", "b", "c", "d"]) + 'abcd' + >>> join("#", ["a", "b", "c", "d"]) + 'a#b#c#d' + >>> join("#", "a") + 'a' + >>> join(" ", ["You", "are", "amazing!"]) + 'You are amazing!' + >>> join("#", ["a", "b", "c", 1]) + Traceback (most recent call last): + ... + Exception: join() accepts only strings to be joined + """ + joined = "" + for word_or_phrase in separated: + if not isinstance(word_or_phrase, str): + raise Exception("join() accepts only strings to be joined") + joined += word_or_phrase + separator + return joined.strip(separator) + + +if "__name__" == "__main__": + from doctest import testmod + + testmod()