Mengapakah '.join()' memasukkan aksara individu daripada integer dan bukannya keseluruhan rentetan?

DDD
Lepaskan: 2024-11-09 08:48:02
asal
281 orang telah melayarinya

Why does

Memahami Kaedah ".join()" dalam Python

Kaedah ".join()" ialah alat manipulasi rentetan yang penting dalam Python yang membolehkan pembangun menggabungkan berbilang rentetan dengan cekap. Kaedah ini mengambil senarai rentetan dan menggabungkannya bersama-sama dengan memasukkan pemisah yang ditentukan antara setiap elemen.

Dalam contoh anda, anda mengalami gelagat yang tidak dijangka apabila menggunakan ".join()" untuk menggabungkan perwakilan rentetan integer dengan rentetan yang dijana secara rawak. Hasilnya, "5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5", mungkin kelihatan membingungkan.

Untuk memahami sebab ini berlaku, kita perlu mendalami mekanik ".join()". Kaedah ini beroperasi pada senarai rentetan, bukan rentetan individu. Apabila ia menemui input bukan rentetan, seperti integer, ia secara automatik menukarnya kepada perwakilan rentetan. Dalam kes anda, integer 595 telah ditukar kepada rentetan "595".

Walau bagaimanapun, daripada memasukkan keseluruhan rentetan "595" antara aksara rawak, ".join()" menganggapnya sebagai senarai aksara individu: ["5", "9", "5"]. Tingkah laku ini jelas dalam output, di mana aksara yang diserlahkan "5", "9", "5" menunjukkan bahawa setiap aksara telah disisipkan di antara huruf rawak.

Untuk mencapai gabungan integer dan integer yang diingini. rentetan rawak, anda harus menggunakan operator " " sebaliknya. " ", tidak seperti ".join()", secara langsung menggabungkan dua rentetan dengan meletakkannya satu demi satu, tanpa sebarang pemisah.

Dengan menggantikan ".join()" dengan " " dalam kod anda:

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

Anda akan memperoleh output yang dijangkakan, di mana integer 595 dilampirkan pada penghujung rentetan rawak.

Atas ialah kandungan terperinci Mengapakah '.join()' memasukkan aksara individu daripada integer dan bukannya keseluruhan rentetan?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan