2015-03-12 3 views
2

This substring related question, похоже, никогда не упоминает о другой потенциальной цели при нарезке строк: получение того, что осталось после фрагмента.Python String: получение того, что осталось после фрагмента строки python

Есть ли способ получить то, что осталось при выполнении операции среза без двух отдельных шагов, в которых вы присоединяетесь к тому, что осталось?

Это был бы грубой способ, но он использует две операции среза и объединение.

myString = "how now brown trow?" 
myString[:4] + myString[-5:] 
>>> 'how trow?' 

Можно ли это сделать, используя нотацию разреза, не делая два ломтика и соединяя их вместе?

+0

Ваш пример, кажется, не демонстрируют '' 'получить то, что осталось после slice'''. – wwii

+0

@wwii Предполагаемый фрагмент, который вы удаляете, - myString [4: -5]. – horta

ответ

2

Нет. Вы не можете получить несмежные куски с помощью одной операции среза.

+0

Я надеялся, что индекс был смежным вперед и назад, и этот срез все равно будет относиться к нему как к непрерывному. – horta

+0

@horta: Нет, вы не можете получить кусочки, которые только прилегают друг к другу. Вы можете отрезать вперед или назад, но не оба в одном и том же фрагменте. – BrenBarn

+0

@horta Это также не просто чистое вращение струны, потому что вы действительно хотите «как вытащить?», А не «тронуть? Как», что вы получите от чтения с оберткой (что может быть выполнено с помощью понимание). –

2

Если срез уникален тем, что вы хотите удалить вы могли str.replace:

myString = "how now brown trow?" 
s = myString.replace(myString[4:-5],"") 
print(s) 
how trow? 
+0

Хорошее обходное решение. При работе с будущими данными, которые могут быть неизвестны, небезопасно предположить, что он будет уникальным, к сожалению. – horta

+0

@horta, yep ограничено, но примерно так же близко, как вы дойдете до одного шага –

+0

Обратите внимание, что это еще два отдельных шага, это всего лишь два разных шага, чем в примере в вопросе. – BrenBarn

Смежные вопросы