Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Mendapatkan Senarai daripada Iterator `map()` Python 3?

Bagaimanakah Saya Mendapatkan Senarai daripada Iterator `map()` Python 3?

Linda Hamilton
Lepaskan: 2024-12-09 22:17:10
asal
638 orang telah melayarinya

How Do I Get a List from Python 3's `map()` Iterator?

Mengambil semula Senarai Dipetakan dalam Python 3.x: map() sebagai Iterator

Dalam Python 3.x, fungsi map() mengembalikan iterator dan bukannya senarai. Perubahan ini dilaksanakan untuk meningkatkan kecekapan memori dan mengoptimumkan prestasi. Walau bagaimanapun, ia menimbulkan cabaran jika anda perlu mendapatkan semula nilai yang dipetakan sebagai senarai untuk pemprosesan selanjutnya.

Penyelesaian: Menukar Iterator kepada Senarai

Untuk mendapatkan semula nilai dipetakan sebagai senarai, gunakan fungsi list() untuk menukar lelaran yang dikembalikan oleh map():

mapped_list = list(map(chr, [66, 53, 0, 94]))
Salin selepas log masuk

Kod ini akan mengembalikan senarai yang mengandungi aksara yang dipetakan: ['B', '5', 'x00', '^'].

Alternatif: Menggunakan Pemahaman Senarai

Cara yang lebih ringkas untuk menukar senarai kepada senarai nilai yang dipetakan ialah menggunakan kefahaman senarai:

mapped_list = [chr(c) for c in [66, 53, 0, 94]]
Salin selepas log masuk

Ungkapan ini menghasilkan hasil yang sama seperti contoh map() di atas.

Lelaran Atas Objek Peta Secara Terus

Dalam senario tertentu, anda mungkin tidak perlu menukar objek peta kepada senarai. Anda boleh lelaran ke atas objek peta secara terus menggunakan gelung for:

for c in map(chr, [65, 66, 67, 68]):
    print(c)
Salin selepas log masuk

Kod ini akan mencetak aksara "ABCD" tanpa membuat senarai yang tidak perlu.

Atas ialah kandungan terperinci Bagaimanakah Saya Mendapatkan Senarai daripada Iterator `map()` Python 3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan