Saya cukup baru untuk Python dan saya benar-benar bingung dengan .join()
yang saya baca adalah metode yang disukai untuk merangkai string.
Saya mencoba:
strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring().join(strid)
dan mendapat sesuatu seperti:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
Mengapa ini bekerja seperti ini? Bukankah seharusnya 595
hanya ditambahkan secara otomatis?
Jawaban:
Perhatikan baik-baik output Anda:
Saya telah menyoroti "5", "9", "5" dari string asli Anda.
join()
Metode Python adalah metode string, dan mengambil daftar hal-hal untuk bergabung dengan string. Contoh sederhana dapat membantu menjelaskan:"," Dimasukkan di antara setiap elemen dari daftar yang diberikan. Dalam kasus Anda, "daftar" Anda adalah representasi string "595", yang diperlakukan sebagai daftar ["5", "9", "5"].
Tampaknya Anda mencari yang
+
sebaliknya:sumber
join
properti yang berguna sebagai kebalikan darisplit
( docs.python.org/library/stdtypes.html#str.split )','.join(['a', 'b', 'c', ''])
memberikan "a, b, c,"string.join
denganos.path.join
jalur mana yang memang beradajoin
mengambil hal yang dapat diubah sebagai argumen. Biasanya daftar. Masalah dalam kasus Anda adalah bahwa string itu sendiri dapat diubah, memberikan masing-masing karakter secara bergantian. Kode Anda rusak menjadi ini:yang bertindak sama seperti ini:
dan menghasilkan string Anda:
String sebagai iterables adalah salah satu masalah awal yang paling membingungkan dengan Python.
sumber
Untuk menambahkan string, cukup menyatukannya dengan
+
tanda.Misalnya
join
menghubungkan string bersama dengan pemisah. Pemisah adalah apa yang Anda tempatkan tepat sebelumjoin
. MisalnyaBergabung mengambil daftar string sebagai parameter.
sumber
join () adalah untuk menggabungkan semua elemen daftar. Untuk menggabungkan hanya dua string "+" akan lebih masuk akal:
sumber
Untuk sedikit lebih memperluas apa yang orang lain katakan, jika Anda ingin menggunakan gabungan untuk hanya menggabungkan dua string Anda, Anda akan melakukan ini:
sumber
Ada penjelasan yang bagus tentang mengapa mahal
+
untuk menggabungkan beberapa string di sinisumber
Untuk memberikan ini sebagai input,
Python mengembalikan ini sebagai output:
sumber
Jika ini adalah input, menggunakan metode GABUNG, kita dapat menambahkan jarak antara kata-kata dan juga mengkonversi daftar ke string.
Ini adalah output Python
sumber
"" .join dapat digunakan untuk menyalin string dalam daftar ke variabel
sumber