Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Adakah .join() Memasukkan Aksara Antara Elemen Daripada Menambah Rentetan dalam Python?

Mengapa Adakah .join() Memasukkan Aksara Antara Elemen Daripada Menambah Rentetan dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-19 20:01:03570semak imbas

Why Does .join() Insert Characters Between Elements Instead of Appending a String in Python?

Memahami Kaedah Join() untuk Penggabungan Rentetan

Semasa bekerja dengan Python, anda mungkin terjumpa tanggapan bahawa .join() ialah kaedah pilihan untuk menggabungkan rentetan. Walau bagaimanapun, fungsinya boleh mengelirukan bagi pemula.

Pertimbangkan coretan kod ini:

strid = repr(595)
print(array.array('c', random.sample(string.ascii_letters, 20 - len(strid))).tostring().join(strid))

Kod ini tidak berfungsi seperti yang diharapkan. Daripada menambahkan "595" pada hasil carian, ia menghasilkan output aksara daripada abjad ASCII yang diselingi dengan digit "595."

Kaedah .join()

Untuk memahami sebabnya, mari kita bongkar kaedah .join(). Ia mengambil rentetan sebagai hujah dan memasukkannya di antara unsur-unsur senarai yang diberikan. Contohnya:

","join(["a", "b", "c"])

Akan menghasilkan "a,b,c." "," disisipkan di antara setiap elemen senarai.

Dalam kod anda, "595" dianggap sebagai senarai tiga aksara individu: ["5", "9", "5"]. Akibatnya, hujah rentetan kaedah .join() disisipkan antara aksara ini, menghasilkan output yang diperhatikan.

Kaedah Alternatif:

Jika niat anda adalah untuk gabungkan rentetan "595" kepada rentetan yang dijana, sebaliknya anda harus menggunakan operator:

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

Ini akan menggabungkan dua rentetan dengan betul, menghasilkan rentetan tunggal dengan kandungan yang diingini.

Atas ialah kandungan terperinci Mengapa Adakah .join() Memasukkan Aksara Antara Elemen Daripada Menambah Rentetan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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