У меня есть список:
ll=['the big grey fox','want to chase a squirell', 'because they are friends']
Я хочу разделить второй элемент ll[1]
на "want to chase"
и " a squirell"
.
Я хочу в итоге:
['the big grey fox','want to chase', ' a squirell', 'because they are friends']
Обратите внимание, что первый элемент необходимо всегда разбивать так, чтобы последние 10 символов были новым элементом списка, сразу после первых n-10 символов предыдущего элемента, чтобы порядок объединенного текста не менялся.
В настоящее время я использую:
ll[:1],ll[1][:len(ll[1])-10], ll[1][-10:],ll[2:]
но есть ли более красивый способ сделать это?
Вы можете использовать:
ll[1:2] = ll[1][:-10], ll[1][-10:]
заменить второй элемент разделенной парой.
Примечание: если вам нужен точный результат, как в вашем вопросе, вам нужно разделить его по индексу -11
.
Sidenote2: ll[1][:len(ll[1])-10]
эквивалентно ll[1][:-10]
@SuramuthuR 1. Да, это моя первая «заметка». 2. Это приведет к удалению пространства, которое, исходя из примера в вопросе, ОП хочет сохранить.
Вы также можете написать
ll[1:2] = (y:=ll[1])[:-10], y[-10:]
, если вам так удобнее. (Вероятно, нет; это пример, где, я думаю, что-то вродеll[1:2] = let y = ll[1] in y[:-10], y[-10:]
сработало бы лучше.)