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!