Skip to content

Instantly share code, notes, and snippets.

@raeq
raeq / strings_22_remove_at_index.py
Last active July 18, 2020 19:45
Remove a character from a string at index
def remove_by_index(original: str = "", index: int = -1) -> tuple:
if len(original) >= index and index >= 0:
return (original[:index] + original[index + 1:], original[index])
else:
return (original, "")
assert remove_by_index("0123456789", 5) == ("012346789", "5")
@raeq
raeq / strings_18_interleave.py
Created July 18, 2020 20:06
Interleave two strings
import itertools
def interleave(left: str = "", right: str = "") -> str:
return "".join(
[i + j for i, j in itertools.zip_longest(left, right, fillvalue="")])
assert interleave("ABCD", "01") == "A0B1CD"
@raeq
raeq / strings_20_locations.py
Created July 18, 2020 20:27
Find character indexes in string
def find_char_locations(original: str = "", character: str = "") -> list:
return [index for index, char in enumerate(original) if char == character]
assert find_char_locations("The jolly green giant.", "e") == [2, 12, 13]
@raeq
raeq / strings_4_join.py
Created July 18, 2020 20:45
Concatenate values to a string
def concatenate(*argv)->str:
return ''.join(argv)
assert concatenate("a", "b", "c") == "abc"
@raeq
raeq / strings_23_similarity.py
Created July 18, 2020 21:02
String similarity
import difflib
def similarity(left: str = "", right: str = "") -> float:
seq = difflib.SequenceMatcher(None, left, right)
return seq.ratio()
assert similarity("I like bananas", "I like bananarama") >= 0.80
@raeq
raeq / strings_17_csv.py
Last active July 23, 2020 20:57
List from csv line
def from_csv_line(line: str = "") -> list:
return line.split(",")
assert from_csv_line("a,b,c") == ["a", "b", "c"]
@raeq
raeq / strings_17s_csv.py
Created July 18, 2020 22:25
List to csv
def from_list(line: list = []) -> str:
ret = ", ".join(e for e in line)
return ret
assert from_list(["a", "b", "c"]) == "a, b, c"
assert from_list(["one", "two", "three"]) == "one, two, three"
@raeq
raeq / strings_8_file_to_list.py
Created July 19, 2020 08:49
Return a list from a file path
def file_to_list(filename: str = "") -> list:
with open(filename, "r") as f:
lines = list(f)
return lines
assert len(file_to_list("<PATH TO FILE>")) == LINE_COUNT
@raeq
raeq / strings_5_empty_or_blank.py
Created July 19, 2020 09:01
Is Python String Empty or Blank
def is_null_or_blank(input_string: str = "") -> bool:
if input_string:
if input_string.strip():
return False
return True
assert is_null_or_blank(None) == True
assert is_null_or_blank("") == True
@raeq
raeq / strings_6_strip.py
Created July 19, 2020 09:08
Returns a tuple of string stripped
def strip_it(input_string: str) -> tuple:
return (input_string.lstrip(), input_string.rstrip(), input_string.strip())
left, right, full = strip_it(" A padded string ")
assert left == "A padded string "
assert right == " A padded string"
assert full == "A padded string"