2013-02-08 9 views
29

Mam dwa scenariusze, w których muszę wstawić ciąg znaków z białymi znakami do określonej długości, zarówno w lewym, jak i w prawo (w oddzielnych przypadkach). Na przykład, mam ciąg:Python - Jak mogę wstawić ciąg znaków ze spacjami z prawej i lewej strony?

TEST 

ale muszę dokonać ciąg zmienny

_____TEST1 

tak, że rzeczywista zmienna ciąg jest 10 znaków (kierowana przez 5 pomieszczeń, w tym przypadku) . UWAGA: Wyświetlam podkreślniki w celu przedstawienia białych znaków (kropka nie wygląda poprawnie na TAK, w przeciwnym razie).

ja też trzeba dowiedzieć się, jak odwrócić go i pad spacje z innego kierunku:

TEST2_____ 

Czy są jakieś funkcje ciąg pomocnicze, aby to zrobić? A może powinienem stworzyć tablicę znaków, aby nią zarządzać?

Należy również zauważyć, że staram się zachować długość łańcucha jako zmienną (w powyższych przykładach użyłem długości 10, ale muszę to zmienić).

Każda pomoc będzie świetna. Jeśli istnieją jakieś funkcje python do zarządzania tym, wolałbym uniknąć pisania czegoś od podstaw.

Dzięki!

+0

możliwe duplikat [? Wypełnić ciąg pytona z przestrzeni] (http://stackoverflow.com/questions/5676646/fill-out- a-python-string-with-spaces) –

Odpowiedz

83

Wygląda na to, że uważam, że str.ljust and str.rjust.

Alternatywą jest prawdopodobnie stosować metody format:

>>> '{:<30}'.format('left aligned') 
'left aligned     ' 
>>> '{:>30}'.format('right aligned') 
'     right aligned' 
>>> '{:^30}'.format('centered') 
'   centered   ' 
>>> '{:*^30}'.format('centered') # use '*' as a fill char 
'***********centered***********' 
+2

@Brett - Wygląda na to, że są przestarzałe. Zaktualizowałem inną alternatywę, która nie jest ;-) – mgilson

+5

The ['str.ljust'] (https://docs.python.org/2/library/stdtypes.html#str.ljust) i' rjust' metody _nie_ są przestarzałe; po prostu połączyłeś ze starymi funkcjami z modułu 'string', które były potrzebne tylko w okresie przed-2.3 dni, kiedy typy wbudowane nie były podobne do klas i miały tylko metody jako specjalny przypadek. – abarnert

Powiązane problemy