Вы можете попробовать что-нибудь, где вы проверите, находится ли символ в ascii_letters
или нет, и добавить его к той же строке или к другой в зависимости от этого. Это может выглядеть так:
from string import ascii_letters
import sys
from typing import List
def main(input_string: str) -> List[str]:
output = []
sub_string = ''
last_was_ascii = None
for char in input_string:
char_is_ascii = char in ascii_letters
if last_was_ascii is None or char_is_ascii == last_was_ascii:
sub_string += char
else:
output.append(sub_string)
sub_string = char
last_was_ascii = char_is_ascii
output.append(sub_string)
print(output)
if __name__ == "__main__":
main(*sys.argv[1:])
При вводе командной строки python example_file.py "Tes.t / &hi-&"
будет напечатано ['Tes', '.', 't', ' / &', 'hi', '-&']
, то есть второй пример, который вы перечислили.
Это немного многословно, однако хитрость