Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah Cara Paling Pythonic untuk Melakukan Penambahan Vektor Bijak Unsur?

Apakah Cara Paling Pythonic untuk Melakukan Penambahan Vektor Bijak Unsur?

Susan Sarandon
Susan Sarandonasal
2024-11-29 01:39:11575semak imbas

What's the Most Pythonic Way to Perform Element-wise Vector Addition?

Penambahan Vektor Bijak Elemen: Pendekatan Paling Pythonic

Andaikan anda mempunyai dua senarai, list1 dan list2, dan anda ingin melakukan penambahan elemen demi elemen, menghasilkan senarai baharu. Apakah cara yang paling Pythonic untuk mencapai ini?

Untuk mengelakkan tugas yang berpotensi lambat dan bertele-tele untuk mengulang senarai, terdapat dua pilihan yang sangat cekap dan Pythonic:

  1. Menggunakan peta dengan operator.add:
from operator import add
list(map(add, list1, list2))

Pendekatan ini menggunakan fungsi map() untuk gunakan operasi tambah daripada modul operator kepada setiap pasangan elemen yang sepadan dalam senarai. Hasilnya ialah objek penjana yang ditukar kepada senarai.

  1. Menggunakan Pemahaman Senarai dengan zip:
[sum(x) for x in zip(list1, list2)]

Di sini, zip () menggabungkan elemen dua senarai menjadi pasangan, di mana setiap pasangan mewakili elemen yang sepadan untuk penambahan. Pemahaman senarai kemudiannya berulang pada pasangan ini dan menggunakan sum() untuk mengumpul nilainya, mengeluarkan hasil penambahan mengikut elemen yang diingini sebagai senarai.

Untuk senarai besar, pertimbangkan untuk menggunakan itertools.izip yang lebih pantas dan bukannya zip untuk pengoptimuman prestasi. Walau bagaimanapun, kedua-dua pendekatan menawarkan kecekapan yang sangat baik untuk kebanyakan senario.

Atas ialah kandungan terperinci Apakah Cara Paling Pythonic untuk Melakukan Penambahan Vektor Bijak Unsur?. 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