Bagaimana cara mengubah daftar menjadi string dengan spasi dengan Python?

93

Bagaimana cara mengubah daftar menjadi string yang dipisahkan spasi dengan Python?

Misalnya, saya ingin mengubah daftar ini:

my_list = [how,are,you]

Ke dalam string "how are you"

Ruang itu penting. Saya tidak ingin mendapatkan howareyouapa yang saya miliki dengan upaya saya sejauh ini

"".join(my_list)
pengguna1653402
sumber
18
Protip: Jangan gunakan listsebagai nama variabel.
Tim Pietzcker

Jawaban:

196
" ".join(my_list)

Anda harus bergabung dengan spasi bukan string kosong ...

Joran Beasley
sumber
7
Kode seperti inilah mengapa saya suka Python. Sangat sederhana.
Josh
bagaimana jika kita memiliki string dalam format ini list = ['how ', 'are ', 'you '] lalu bagaimana mengubahnya menjadi daftar.
Muhammad Taqi
1
@MuhammadTaqi lalu lepaskan saja elemen be4 bergabung ..." ".join([i.strip() for i in my_list)
JACK ZHANG
17

Saya akan melemparkan ini sebagai alternatif hanya untuk sih, meskipun itu cukup banyak tidak berguna jika dibandingkan dengan " ".join(my_list)string. Untuk non-string (seperti array int) ini mungkin lebih baik:

" ".join(str(item) for item in my_list)
Polaris
sumber
7

Untuk Non String listkita bisa melakukan seperti ini juga

" ".join(map(str, my_list))
Athar
sumber
2

Jadi untuk mencapai keluaran yang diinginkan, pertama-tama kita harus mengetahui cara kerja fungsinya.

Sintaks untuk join()metode seperti yang dijelaskan dalam dokumentasi python adalah sebagai berikut:

string_name.join(iterable)

Hal-hal yang perlu diperhatikan:

  • Ini mengembalikan stringgabungan dengan elemen iterable. Pemisah antara elemen menjadi string_name.
  • Nilai non-string apa pun dalam surat iterablewasiat akan menaikkan aTypeError

Sekarang, untuk menambahkan spasi , kita hanya perlu mengganti string_namedengan a " "atau a ' 'keduanya akan bekerja dan menempatkan iterableyang ingin kita gabungkan.

Jadi, fungsi kita akan terlihat seperti ini:

' '.join(my_list)

Tapi, bagaimana jika kita ingin menambahkan sejumlah white spacesdi antara elemen kita di iterable?

Kami perlu menambahkan ini:

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

di sini, numberakan menjadi masukan pengguna.

Jadi, misalnya jika number=4.

Kemudian, keluaran dari str(4*" ").join(my_list)akan menjadi how are you, jadi di antara setiap kata terdapat 4 spasi.

Abhay Tiwari
sumber
1

"".join([i for i in my_list])

Ini harus bekerja seperti yang Anda minta!

Abhishek Thulasi
sumber
-9

Mengapa Anda tidak menambahkan spasi di item dari daftar itu sendiri, seperti:
list = ["how ", "are ", "you "]

Anonim
sumber
Anda telah menulis jawaban ini dengan cara yang membuatnya tampak lebih sesuai dalam bentuk komentar. Akan lebih bermanfaat jika Anda memperluas jawaban ini untuk menjelaskan mengapa apa yang Anda sarankan berhasil.
Andon M. Coleman
1
Ini tidak berfungsi dalam kasus di mana Anda tidak memiliki akses ke daftar (misalnya ketika dibuat dengan input(a).split(b))
TheSola10
kita tidak boleh mengubah string internal karena menyebabkan kita kehilangan ruang
Deepak Yadav