Praca nad zadaniem Pythona i była ciekawa, co [: -1] oznacza w kontekście następującego kodu: instructions = f.readline()[:-1]
Co znaczy [: -1] w pythonie?
Szukano tutaj na S.O. i w Google, ale bez skutku. Chciałbym wyjaśnienia!
Praca nad zadaniem Pythona i była ciekawa, co [: -1] oznacza w kontekście następującego kodu: instructions = f.readline()[:-1]
Co znaczy [: -1] w pythonie?
Szukano tutaj na S.O. i w Google, ale bez skutku. Chciałbym wyjaśnienia!
To plastry ciąg pominąć ostatni znak w tym przypadku znak nowej linii:
>>> 'test\n'[:-1]
'test'
Ponieważ to działa nawet na pustych ciągach znaków, jest to całkiem bezpieczny sposób usunięcia tego ostatniego znaku, jeśli występuje:
>>> ''[:-1]
''
Działa to w dowolnej sekwencji, a nie tylko w łańcuchach.
dzieli sekwencję * - może to być po prostu ciąg znaków. –
Dziękujemy! Idealny. "Sprawdzę" tę odpowiedź, kiedy pozwala mi to zrobić. –
Hmm, myślę, że użyję tego na głupią minę podczas pisania! [: -1] – Stephen
Otrzymuje wszystkie elementy z listy (lub znaki z łańcucha), ale ostatni element.
:
reprezentuje przeżywa listy -1
oznacza ostatni element listy
Jest to napisany na tyle niejednoznacznie, że może być mylący. To wszystkie elementy do _ ale nie wliczając_ ostatniego elementu. (Jeśli wiesz już, jak plasterki/zakresy/itd. Działają w Pythonie, to wiedząc, że -1 jest ostatnim elementem, mówi ci wszystko, czego potrzebujesz ... ale jeśli nie, nadal nie będziesz po tej odpowiedzi.) – abarnert
Wybiera wszystkie oprócz ostatniego elementu sekwencji.
Przykład poniżej na podstawie listy:
In [15]: a=range(10)
In [16]: a
Out[16]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [17]: a[:-1]
Out[17]: [0, 1, 2, 3, 4, 5, 6, 7, 8]
Wycina sekwencję * - może to być tylko lista. –
oznacza „wszystkie elementy sekwencji, ale ostatnie”. W kontekście f.readline()[:-1]
oznacza to "jestem prawie pewny, że linia kończy się znakiem nowej linii i chcę ją usunąć".
Chociaż odpowiedź Martijna Pietersa jest nieco bardziej szczegółowa i objaśniająca, podoba mi się, że ta bezpośrednio opisuje idiom użycia '[: -1]' z 'readline', odpowiadając na część" OP "w kontekście ...". (Tak, +1 do was obojga.) – abarnert
Warto zauważyć, że wykonanie tego założenia może być niebezpieczne, nawet w systemie, w którym oczekuje się, że znacznik końca linii ma długość jednej postaci-- nierzadko kończy się brakiem nowego wiersza w ostatniej linii pliku. Jest to szczególnie ważne, gdy Python jest zaangażowany: widziałem '' \ n'.join (linie) 'używane wcześniej, co spowoduje dokładnie to się dzieje, a następnie tracisz postać danych .. – DSM
Czasami -1 służy do wyrażania końca szeregu rzeczy. Domyślam się, że to znaczy czytać od początku do końca wiersza (ale tylko przypuszczenie, stąd nie oficjalna odpowiedź). – Daedalus
Nie jestem pewien, czy to dup, z powodu tego "w kontekście ..." części - która jest tą częścią, którą ty i, szczególnie, odpowiedział Pavel Anossov. – abarnert