def split_line(line, sep):
if not line:
return ['']
result = []
value = ''
in_quotes = False
for char in line:
if char == '"' and (not value or value[-1] != '\\'):
in_quotes = not in_quotes
elif char == sep and not in_quotes:
result.append(value)
value = ''
else:
value += char
result.append(value) # добавить последнее значение
# Убедиться, что значения в кавычках не содержат кавычек
result = [v.replace('"', '') for v in result]
return result
Такое выдала нейросеть. ХЗ нормальное ли решение. def split_line(line, sep):
if not line:
return ['']
result = []
in_quotes = False
current_value = ''
for char in line:
if char == '"':
in_quotes = not in_quotes
elif char == sep and not in_quotes:
result.append(current_value)
current_value = ''
else:
current_value += char
result.append(current_value)
return result
Аргументы функции split_line:
line — строка, которую необходимо разбить по разделителю;
sep — разделитель, по которому происходит разбиение. Разделителем является строго один символ.
В результате работы функция split_line должна возвращать список значений, которые содержатся в строке между указанными разделителями.
В случае если переданная на вход функции строка является пустой, в результате её работы должен вернуться список, состоящий из одной пустой строки.
Важно: если какое-то из значений обособлено двойными кавычками ("<значение>"), то разделительный символ внутри него не считается разделителем. Гарантируется, что в качестве разделителя в функцию split_line никогда не будет передан символ двойной кавычки ("). Также гарантируется, что двойные кавычки используются только для обособления значений снаружи, но не используются внутри самих значений.
Также важно: если значение обособлено двойными кавычками, сами кавычки не считаются частью значения, то есть в итоговом списке данное значение будет идти без двойных кавычек.
Формат сдачи решения
В качестве ответа на задание приведите код реализованной функции. Важно: сама функция не должна ссылаться ни на какие внешние переменные, которые определены за её пределами.
В коде также запрещено использовать ключевое слово import.
P.S. У меня есть свой код, но на последних тестах он не проходит :(