Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah `zip()` dalam Python Mengembalikan Senarai 20 Tuple Apabila Menggabungkan Tiga Senarai?

Mengapakah `zip()` dalam Python Mengembalikan Senarai 20 Tuple Apabila Menggabungkan Tiga Senarai?

Susan Sarandon
Susan Sarandonasal
2024-12-15 17:18:11196semak imbas

Why Does `zip()` in Python Return a List of 20 Tuples When Combining Three Lists?

Memahami Fungsi Senarai Zip dalam Python

Dalam pengaturcaraan Python, fungsi zip() memainkan peranan penting dalam menggabungkan berbilang senarai ke dalam satu senarai tupel. Setiap tuple mewakili satu baris, menggandingkan elemen yang sepadan daripada senarai input.

Pertimbangkan coretan kod berikut:

x1, x2, x3 = stuff.calculations(withdataa)

zipall = zip(x1, x2, x3)

print("len of zipall %s" % len(zipall))

Berbeza dengan hasil jangkaan tiga, output ialah 20, menunjukkan asas salah faham.

Menyingkap Sifat Berzip Senarai

Apabila anda zip bersama tiga senarai dengan 20 elemen setiap satu, senarai yang terhasil mengandungi 20 tupel. Setiap tuple mengandungi tiga elemen, satu daripada setiap senarai input.

Contohnya:

In [1]: a = b = c = range(20)

In [2]: zip(a, b, c)
Out[2]:
[(0, 0, 0),
 (1, 1, 1),
 ...
 (17, 17, 17),
 (18, 18, 18),
 (19, 19, 19)]

Menentukan Panjang Tuple

Untuk menentukan panjang setiap tuple, anda boleh memeriksa elemen pertama:

In [3]: result = zip(a, b, c)

In [4]: len(result[0])
Out[4]: 3

Walau bagaimanapun, pendekatan ini mungkin gagal jika senarai input kosong. Oleh itu, sebaiknya gunakan kaedah yang lebih mantap untuk menentukan bilangan elemen dalam setiap tuple.

Atas ialah kandungan terperinci Mengapakah `zip()` dalam Python Mengembalikan Senarai 20 Tuple Apabila Menggabungkan Tiga Senarai?. 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