2010-05-06 31 views
17

Chcę usunąć pierwsze znaki z ciągu znaków. Czy istnieje funkcja, która działa w ten sposób?Usuń n znaków od początku ciągu znaków

>>> a = "BarackObama" 
>>> print myfunction(4,a) 
ckObama 
>>> b = "The world is mine" 
>>> print myfunction(6,b) 
rld is mine 
+11

Nigdy nie napisałem ani słowa Python i jeszcze udało mi się znaleźć odpowiedź na to pytanie. Sugeruję, abyś wyszukał hasło "Manipulacja struna w Pythonie" w Google. Oto jeden link: http://www.astro.ufl.edu/~warner/prog/python.html – Armstrongest

+0

możliwy duplikat [jak usunąć lewą część napisu w pythonie?] (Http://stackoverflow.com/ pytania/599953/how-to-remove-left-part-of-a-string-in-python) – outis

Odpowiedz

13

Funkcja może być:

def cutit(s,n):  
    return s[n:] 

a potem nazwać tak:

name = "MyFullName" 

print cutit(name, 2) # prints "FullName" 
8

Użyj krojenia.

>>> a = "BarackObama" 
>>> a[4:] 
'ckObama' 
>>> b = "The world is mine" 
>>> b[6:10] 
'rld ' 
>>> b[:9] 
'The world' 
>>> b[:3] 
'The' 
>>>b[:-3] 
'The world is m' 

Można przeczytać o tym i wielu innych funkcji językowych w oficjalnym poradniku: http://docs.python.org/tut/

18

Tak, wystarczy użyć plasterki:

>> a = "BarackObama" 
>> a[4:] 
'ckObama' 

dokumentacja jest tutaj http://docs.python.org/tutorial/introduction.html#strings

+3

Krótkie, zwięzłe i wyraźne. Z odniesieniem bezpośrednio do sekcji String. Mój jest po prostu kiepskim rehashiem. Nauczyłem się Pythona, aby odpowiedzieć na to pytanie ... i teraz usunę odpowiedź. Musisz ciąć bałagan! – Armstrongest

4
a = 'BarackObama' 
a[4:] # ckObama 
b = 'The world is mine' 
b[6:] # rld is mine 
Powiązane problemy