Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 26, 2013 14:05:36

medelgover
Зарегистрирован: 2013-09-20
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление части строки

Как удалить часть строки до определенного символа?

Офлайн

#2 Ноя. 26, 2013 14:09:21

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Удаление части строки

Строки - неизменяемые объекты, поэтому удалить из строки ничего не получится, просто создавайте новый объект

s = "dsadfdsfnjkvnsaasda"
index = 8
s = s [index:]
print s



Офлайн

#3 Ноя. 26, 2013 14:16:30

medelgover
Зарегистрирован: 2013-09-20
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление части строки

FishHook
Строки - неизменяемые объекты, поэтому удалить из строки ничего не получится, просто создавайте новый объект
В вашем примере удаляется первые 8 символов.
Мне нужно удалить неизвестное количество символов, все что скажем до символа ‘/’
Пример:
s = “dsadfdsf/njkvnsaasda”
чтото делаем
получаем
s = “njkvnsaasda”

Офлайн

#4 Ноя. 26, 2013 15:04:42

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Удаление части строки

И что же вам мешает определить позицию этого символа и потом сделать так, как вам уже подсказали?



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#5 Ноя. 26, 2013 15:19:20

medelgover
Зарегистрирован: 2013-09-20
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление части строки

Master_Sergius
И что же вам мешает определить позицию этого символа и потом сделать так, как вам уже подсказали?

да ничего не мешает. просто эта конструкция не очень красиво сделана.
s = "dsadfdsfnj/kvnsaasda"
temp=s.find('/')
index = temp
s = s [index:]
s = s [1:]
print s

kvnsaasda

Я думал что существует некое “готовое” выражение. Ну и на том спасибо.

Отредактировано medelgover (Ноя. 26, 2013 15:20:37)

Офлайн

#6 Ноя. 26, 2013 15:52:14

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Удаление части строки

medelgover
да ничего не мешает. просто эта конструкция не очень красиво сделана.
С определенным талантом можно изуродовать всё что угодно
s = s[s.find('/')+1:]



Офлайн

#7 Ноя. 26, 2013 16:13:20

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Удаление части строки

Другой извращенский вариант (не люблю обращения по индексу, люблю срезы):

>>> s, = 'dsadfdsf/njkvnsaasda'.split('/', 1)[1:]
>>> s
'njkvnsaasda'

..bw



Отредактировано bw (Ноя. 26, 2013 20:23:04)

Офлайн

#8 Ноя. 26, 2013 19:59:53

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Удаление части строки

medelgover
Мне нужно удалить неизвестное количество символов, все что скажем до символа ‘/’
medelgover
Я думал что существует некое “готовое” выражение. Ну и на том спасибо.

import os
os.path.basename('dsadfdsf/njkvnsaasda')
'njkvnsaasda'



Офлайн

#9 Ноя. 26, 2013 20:22:38

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Удаление части строки

Тогда для верности нужно добавить:

s = 'dsadfdsf/njkvnsaasda'
assert not os.sep in s
s = s.replace('/', os.sep)

..bw



Отредактировано bw (Ноя. 26, 2013 20:24:57)

Офлайн

#10 Ноя. 27, 2013 20:11:12

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Удаление части строки

medelgover
Как удалить часть строки до определенного символа?
>>> re.sub("[^/]*","","asdasd/asdasd/asdasd/asdasd",1)
'/asdasd/asdasd/asdasd'
>>> re.sub("[^/]*","","/asdasd/asdasd/asdasd/asdasd",1)
'/asdasd/asdasd/asdasd/asdasd'
когда пишут до, я понимаю так: надо сам символ оставить.



Отредактировано doza_and (Ноя. 27, 2013 20:12:59)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version