Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mencipta Senarai dengan Cekap dengan Elemen Berulang dalam Python Tanpa Pemahaman Senarai?

Bagaimanakah Saya Boleh Mencipta Senarai dengan Cekap dengan Elemen Berulang dalam Python Tanpa Pemahaman Senarai?

Linda Hamilton
Linda Hamiltonasal
2024-12-19 14:21:131012semak imbas

How Can I Efficiently Create Lists with Repeated Elements in Python Without List Comprehensions?

Menjana Senarai dengan Elemen Berulang

Dalam Python, mencipta berbilang senarai yang mengandungi elemen berulang yang sama boleh dicapai dalam pelbagai cara. Perbincangan ini meneroka kaedah yang memintas pemahaman senarai.

Penyelesaian:

Python menyediakan operator * untuk meniru elemen. Untuk membuat senarai yang diisi dengan n kejadian unsur e, hanya gunakan ungkapan [e] * n.

Contoh:

e = 5
list_of_e = [e] * 10  # [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]

Nota:

Jika e ialah senarai kosong, kaedah ini akan mencipta senarai dengan n rujukan kepada senarai kosong yang sama. Menyediakan senarai kosong bebas memerlukan pendekatan yang berbeza.

Penilaian Prestasi:

Walaupun itertools.repeat() pada mulanya mungkin muncul lebih pantas, ia memerlukan penukaran kepada senarai untuk melakukan perbandingan . Operator * terus mengembalikan senarai, menghasilkan prestasi yang lebih baik:

import timeit
n = 1000000
timeit.timeit('[0] * 10', number=n)  # Faster
timeit.timeit('list(itertools.repeat(0, 10))', number=n)  # Slower

Kesimpulan:

Untuk membuat senarai elemen berulang tanpa pemahaman senarai, manfaatkan operator * , yang menawarkan penyelesaian yang ringkas dan cekap. Apabila memerlukan penjanaan unsur malas, pertimbangkan itertools.repeat().

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Senarai dengan Cekap dengan Elemen Berulang dalam Python Tanpa Pemahaman 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