Видалення перших x символів із рядка?


116

Як можна видалити перші рядки x із рядка? Наприклад, якби у них був рядок lipsum, як би вони видалили перші 3 символи та отримали результат sum?


5
кращий приклад, якщо кількість видалених символів не дорівнювало кількості символів, що залишилися. наприклад"lipsumm"[3:] == "summ"
Скотт Пелак

Відповіді:


213
>>> text = 'lipsum'
>>> text[3:]
'sum'

Для отримання більш детальної інформації див. Офіційну документацію про рядки та цю відповідь, щоб отримати короткий підсумок нотації.


16

Інший спосіб (залежно від ваших реальних потреб): Якщо ви хочете вивести перші n символів і зберегти як з'являються символи, так і модифіковану рядок:

s = 'lipsum'
n = 3
a, s = s[:n], s[n:]
print(a)
# lip
print(s)
# sum

3
Я думаю, це метафорично "вискочило", але насправді його всього 2 різних скибочки, ніяких реальних вискакувань
jamylak

9
>>> x = 'lipsum'
>>> x.replace(x[:3], '')
'sum'

11
Зауважте, що це код довше, і це також займе більше часу, оскільки вам доведеться шукати підрядку, перш ніж замінити його. Крім того : >>> x = 'liplip' >>> x.replace(x[:3], '') ''. Звичайно, ви можете виправити це за допомогою третього параметра (count) = 1, але це займе більше часу.
jamylak

Ні, це пов'язано з вашою відповіддю, тому вона належить тут. Ви можете додати count = 1 до свого, щоб він все ще працював btw
jamylak

4

Використовуйте del.

Приклад:

>>> text = 'lipsum'
>>> l = list(text)
>>> del l[3:]
>>> ''.join(l)
'sum'

1
Це не працює так, як ви думаєте, text = 'liplip' >>> text.lstrip(text[:3]) ''тому що для одного аргумент "chars" не є префіксом; скоріше, всі комбінації його значень позбавлені:str.lstrip([chars])
jamylak

@jamylak Відредаговано шахту
U10-Вперед

1
Жодне з рішень не працює, наприклад. для 'liplip'. У другомуTypeError: 'str' object does not support item deletion
jamylak

@jamylak знову відредаговано
U10-Вперед

@jamylak це працює, тепер, якщо так, вам потрібно звернути увагу?
U10-Вперед

2

Приклад, щоб показати останні три цифри номера рахунку.

x = '1234567890'   
x.replace(x[:7], '')

o/p: '890'

Це те саме питання, що і відповідь tkbx
jamylak

напр. >>> x = '12345678901234567890' >>> x.replace(x[:7], 'xxxxxxx') 'xxxxxxx890xxxxxxx890'
jamylak

Також це навіть не відповідає на запитання, ви замінюєте символи на xs замість того, щоб видаляти їх
jamylak
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.