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)

18
Protip: Jangan gunakan listsebagai nama variabel.
Tim Pietzcker

Jawaban:


196
" ".join(my_list)

Anda harus bergabung dengan spasi bukan string kosong ...


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)

7

Untuk Non String listkita bisa melakukan seperti ini juga

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

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.



-9

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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.