Apakah ada cara yang lebih sederhana untuk menggabungkan item string dalam daftar menjadi string tunggal? Bisakah saya menggunakan str.join()
fungsinya?
Misal ini adalah input ['this','is','a','sentence']
dan ini adalah output yang diinginkanthis-is-a-sentence
sentence = ['this','is','a','sentence']
sent_str = ""
for i in sentence:
sent_str += str(i) + "-"
sent_str = sent_str[:-1]
print sent_str
'-'.join(sentence)
Jawaban:
Gunakan
join
:sumber
sentence.join(" ")
bekerja juga, karena operasi sebaliknyalist.split(" ")
. Adakah ide jika ini akan ditambahkan ke metode Python untuk daftar?list.join
tidak pantas untuk daftar yang sewenang-wenang. Di sisi lain, argumen daristr.join
bisa menjadi urutan string "iterable", bukan hanya daftar. Satu-satunya hal yang masuk akal adalah fungsi bawaanjoin(list, sep)
; ada satu distring
modul (pada dasarnya usang) jika Anda benar-benar menginginkannya.' '.join(['this', 'is', 'a', 'sentence'])
Cara yang lebih umum untuk mengonversi daftar python menjadi string adalah:
sumber
map(str, my_lst)
akan cukup tanpa menyebutkan daftar =)int
tetapi bisa berupa tipe apa saja yang dapat direpresentasikan sebagai string.' '.join(map(lambda x: ' $'+ str(x), my_lst))
akan kembali'$1 $2 $3 $4 $5 $6 $7 $8 $9 $10'
Ini sangat berguna bagi pemula untuk mengetahui mengapa bergabung adalah metode string .
Ini sangat aneh di awal, tetapi sangat berguna setelah ini.
Hasil join selalu berupa string, tetapi objek yang akan digabung bisa dari banyak jenis (generator, daftar, tupel, dll).
.join
lebih cepat karena hanya mengalokasikan memori sekali. Lebih baik daripada penggabungan klasik (lihat penjelasan panjang lebar ).Setelah Anda mempelajarinya, sangat nyaman dan Anda dapat melakukan trik seperti ini untuk menambahkan tanda kurung.
sumber
Meskipun jawaban @ Burhan Khalid bagus, saya pikir lebih masuk akal seperti ini:
Argumen kedua untuk bergabung () adalah opsional dan default ke "".
EDIT: Fungsi ini dihapus dalam Python 3
sumber
Kita dapat menentukan bagaimana kita harus bergabung dengan string. Alih-alih '-', kita bisa menggunakan ''
sumber
Kita juga bisa menggunakan fungsi pengurangan Python :
sumber
join
?sumber