Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Meninggalkan Dua Senarai Panjang Tidak Sama Secara Python?

Bagaimanakah Saya Boleh Meninggalkan Dua Senarai Panjang Tidak Sama Secara Python?

Barbara Streisand
Barbara Streisandasal
2024-12-12 16:41:16908semak imbas

How Can I Pythonically Interleave Two Lists of Unequal Lengths?

Pythonic Interleaving of List

Menggabungkan dua senarai secara berselang-seli ialah tugas biasa dalam pengaturcaraan. Apabila senarai pertama mempunyai satu item lagi daripada yang kedua, terdapat beberapa pendekatan untuk mencapai ini dalam Python. Berikut ialah beberapa pilihan Pythonic:

1. Menggunakan Menghiris:

Satu kaedah ialah menggunakan penghirisan untuk mencipta senarai baharu yang menyilangkan elemen daripada kedua-dua senarai. Ini boleh dilakukan dengan langkah berikut:

  1. Buat senarai baharu dengan panjang yang sama dengan jumlah panjang dua senarai input.
  2. Tetapkan elemen yang diindeks genap daripada senarai baharu kepada item daripada senarai input pertama.
  3. Tetapkan elemen terindeks ganjil senarai baharu kepada item daripada input kedua senarai.

Berikut ialah contoh:

list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
result = [None]*(len(list1)+len(list2))
result[::2] = list1
result[1::2] = list2
print(result)

Output:

['f', 'hello', 'o', 'world', 'o']

2. Menggunakan Pakej itertools:

Python's itertools package menyediakan fungsi yang mudah dipanggil islice yang boleh digunakan untuk mengulang elemen senarai dalam selang waktu tertentu. Begini cara anda boleh menggunakannya untuk menyelang dua senarai:

import itertools
list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
result = list(itertools.chain(*itertools.zip_longest(list1, list2)))
print(result)

Output:

['f', 'hello', 'o', 'world', 'o']

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meninggalkan Dua Senarai Panjang Tidak Sama Secara 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