Dalam Python, jalinan dua senarai bermakna mencipta senarai baharu yang menggantikan elemen daripada kedua-dua senarai. Untuk mencapai matlamat ini, pertimbangkan senario berikut:
Jika kedua-dua senarai mempunyai bilangan elemen yang sama, penyelesaian mudah ialah menggunakan penghirisan:
list1 = ['f', 'o', 'o'] list2 = ['hello', 'world'] result = [None] * (len(list1) + len(list2)) result[::2] = list1 result[1::2] = list2 print(result)
Ini akan menghasilkan output yang diingini:
['f', 'hello', 'o', 'world', 'o']
Apabila senarai input mempunyai panjang yang berbeza, logik tambahan diperlukan:
Untuk meninggalkan sebarang elemen lebihan daripada senarai yang lebih panjang di penghujung , gunakan pendekatan ini:
def interlace(list1, list2): result = [] i, j = 0, 0 # indices for list1 and list2 while i < len(list1) and j < len(list2): result.append(list1[i]) result.append(list2[j]) i += 1 j += 1 # Add remaining elements from the longer list result.extend(list1[i:] if len(list1) > len(list2) else list2[j:]) return result
Untuk sebarkan elemen berlebihan secara sama rata dalam senarai berjalin, gunakan kaedah ini:
def interlace_evenly(list1, list2): shorter_list = list1 if len(list1) < len(list2) else list2 longer_list = list1 if len(list1) > len(list2) else list2 result = [] # Intersperse elements of the shorter list for i in range(len(shorter_list)): result.append(shorter_list[i]) result.append(longer_list[i % len(longer_list)]) # Add remaining elements from the longer list result.extend(longer_list[len(shorter_list):]) return result
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalin Dua Senarai Panjang Berpotensi Berbeza dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!