Як перетворити список у рядок із пробілами в Python?


93

Як я можу перетворити список на рядок, відокремлений пробілом у Python?

Наприклад, я хочу перетворити цей список:

my_list = [how,are,you]

У рядок "how are you"

Пробіли важливі. Я не хочу отримувати так, howareyouяк це робить із моєю спробою до цього часу використовувати

"".join(my_list)

18
Вказівка: Не використовувати listяк ім'я змінної.
Тім Пітцкер,

Відповіді:


196
" ".join(my_list)

вам потрібно приєднати пробіл, а не порожній рядок ...


7
Такий код, тому мені подобається Python. Так просто.
Джош

що якщо у нас є рядок у такому форматі, list = ['how ', 'are ', 'you '] то як перетворити це у список.
Мухаммед Такі

1
Потім @MuhammadTaqi просто зніміть елемент be4, що приєднується ..." ".join([i.strip() for i in my_list)
JACK ZHANG

17

Я вкину це як альтернативу лише на біс, хоча це майже марно, якщо порівнювати з " ".join(my_list)рядками. Для нерядок (таких як масив ints) це може бути краще:

" ".join(str(item) for item in my_list)

7

Для Non String listми можемо робити і це

" ".join(map(str, my_list))

2

Отже, щоб досягти бажаного результату, ми повинні спочатку знати, як працює ця функція.

Синтаксис join()методу, як описано в документації на python, є таким:

string_name.join(iterable)

Що слід зазначити:

  • Він повертає stringоб'єднаний з елементами iterable. Розділювач між елементами, що є string_name.
  • Будь-яке нестрокове значення у iterableзаповіті підвищує aTypeError

Тепер, щоб додати прогалини , нам просто потрібно замінити string_nameз " "або ' 'обидва з них будуть працювати і місце , iterableщо ми хочемо СЦЕПИТЬ.

Отже, наша функція буде виглядати приблизно так:

' '.join(my_list)

Але що, якщо ми хочемо додати певну кількість проміжків white spacesміж нашими елементами в iterable?

Нам потрібно додати це:

str(number*" ").join(iterable)

тут numberбуде введено користувачем.

Так, наприклад, якщо number=4.

Тоді результат str(4*" ").join(my_list)буде how are you, отже, між кожним словом є 4 пробіли.



-9

Чому б вам не додати пробіл до елементів самого списку, наприклад:
list = ["how ", "are ", "you "]


Ви написали цю відповідь таким чином, щоб зробити її більш доречною у вигляді коментаря. Було б вигідніше, якби ви розширили цю відповідь, щоб пояснити, чому працює те, що ви пропонуєте.
Andon M. Coleman

1
Це не працює у випадку, коли у вас немає доступу до списку (наприклад, при створенні за допомогою input(a).split(b))
TheSola10,

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