Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapakah `.join()` Menghasilkan Keputusan Yang Tidak Dijangka Apabila Menggabungkan Rentetan dan Objek seperti Bait?

Mengapakah `.join()` Menghasilkan Keputusan Yang Tidak Dijangka Apabila Menggabungkan Rentetan dan Objek seperti Bait?

Linda Hamilton
Lepaskan: 2024-11-12 13:26:02
asal
464 orang telah melayarinya

Why Does `.join()` Produce Unexpected Results When Concatenating a String and a Bytes-like Object?

Apakah itu .join() dan Bagaimana Ia Berfungsi dalam Menggabungkan Rentetan?

Kaedah .join() Python biasanya digunakan untuk rentetan penyatuan. Namun, setelah menguji contoh yang diberikan, ia membuahkan hasil yang tidak dijangka. Memahami tujuan dan penggunaan kaedah ini boleh menjelaskan mengapa ia berkelakuan seperti itu.

Kaedah .join() beroperasi pada rentetan dan mengambil elemen yang boleh dilelang sebagai hujah. Ia memasukkan rentetan yang ditentukan di antara setiap elemen yang boleh dilelang semasa penyambungan.

Sebagai contoh:

",".join(["a", "b", "c"])
# Output: 'a,b,c'
Salin selepas log masuk

Dalam contoh yang disediakan:

array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring().join(strid)
Salin selepas log masuk

Rentetan() kaedah menukar tatasusunan aksara kepada objek seperti bait. Objek seperti bait ini kemudiannya digunakan sebagai input untuk .join() bersama rentetan "595".

Walau bagaimanapun, perkara utama yang perlu difahami ialah rentetan "595" dianggap sebagai senarai aksara individunya, iaitu ["5", "9", "5"]. Oleh itu, ".join()" beroperasi pada senarai ini, memasukkan objek seperti bait antara setiap aksara:

5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
^                 ^                 ^
Salin selepas log masuk

Setiap "5", "9", "5" dalam output menunjukkan sisipan daripada objek seperti bait antara aksara rentetan asal.

Untuk mencapai penggabungan yang dimaksudkan, pengendali boleh digunakan sebaliknya:

array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring() + strid
Salin selepas log masuk

Pendekatan ini menggabungkan secara langsung bait seperti objek dengan rentetan "595", menghasilkan output yang diingini tanpa sebarang sisipan antara aksara.

Atas ialah kandungan terperinci Mengapakah `.join()` Menghasilkan Keputusan Yang Tidak Dijangka Apabila Menggabungkan Rentetan dan Objek seperti Bait?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan