Jak przekonwertować listę na ciąg znaków oddzielonych spacjami w Pythonie?
Na przykład chcę przekonwertować tę listę:
my_list = [how,are,you]
W strunę "how are you"
Przestrzenie są ważne. Nie chcę uzyskać tego, howareyou
co mam z dotychczasową próbą używania
"".join(my_list)
list
jako nazwy zmiennej.Odpowiedzi:
" ".join(my_list)
musisz połączyć spacją, a nie pustym ciągiem ...
źródło
list = ['how ', 'are ', 'you ']
to jak przekonwertować to na listę." ".join([i.strip() for i in my_list)
Dorzucę to jako alternatywę dla samego cholerstwa, mimo że jest to prawie bezużyteczne w porównaniu do
" ".join(my_list)
strun. W przypadku znaków niebędących łańcuchami (takich jak tablica liczb int) może to być lepsze:" ".join(str(item) for item in my_list)
źródło
W przypadku Non String
list
możemy to również zrobić" ".join(map(str, my_list))
źródło
Aby więc uzyskać pożądany wynik, powinniśmy najpierw wiedzieć, jak działa ta funkcja.
Składnia
join()
metody opisana w dokumentacji języka Python jest następująca:string_name.join(iterable)
Kwestie, na które należy zwrócić uwagę:
string
połączone z elementamiiterable
. Separator między elementami będącystring_name
.iterable
elemencie spowoduje podniesienieTypeError
Teraz, aby dodać spacje , wystarczy zamienić
string_name
znak na jeden" "
lub' '
oba będą działać i umieścić toiterable
, co chcemy połączyć.Tak więc nasza funkcja będzie wyglądać mniej więcej tak:
' '.join(my_list)
Ale co, jeśli chcemy dodać określoną liczbę
white spaces
między naszymi elementami witerable
?Musimy to dodać:
str(number*" ").join(iterable)
tutaj
number
będzie dane wejściowe użytkownika.Na przykład jeśli
number=4
.Następnie wynik
str(4*" ").join(my_list)
will będziehow are you
, więc między każdym słowem są 4 białe spacje.źródło
"".join([i for i in my_list])
To powinno działać tak, jak prosiłeś!
źródło
Dlaczego nie dodasz spacji w pozycjach samej listy, na przykład:
list = ["how ", "are ", "you "]
źródło
input(a).split(b)
)