Fungsi ini mengulang beberapa iterable secara paralel dan menghasilkan tupel dengan item dari setiap iterable
Kami menggunakan * iterable unpacking operator untuk membongkar daftar bersarang dalam panggilan ke fungsi zip()
The memungkinkan kita untuk membongkar iterable dalam pemanggilan fungsi, dalam pemahaman dan dalam ekspresi generator
Anda dapat membayangkan bahwa fungsi zip()_ berulang pada daftar bersarang, mengambil 1 item dari masing-masing
Tuple pertama di dalam list terdiri dari elemen di setiap nested list yang memiliki indeks 0, dan tuple kedua terdiri dari elemen di setiap nested list yang memiliki indeks 1
Langkah terakhir adalah menggunakan pemahaman daftar untuk mengulangi objek zip dan menjumlahkan setiap tupel
Daftar pemahaman digunakan untuk melakukan beberapa operasi untuk setiap elemen, atau memilih subset dari elemen yang memenuhi syarat
Sangat bagus. Setelah menghitung total donasi pada hari tertentu, kami ingin menghitung total donasi untuk lokasi tertentu. Segalanya akan menjadi sedikit lebih rumit karena pada dasarnya kita menghitung jumlah untuk "kolom", bukan "baris". Lihatlah
donations = [ [345.0, 287.80, 119.27, 329.30], [294.25, 349.0, 178.90, 262.34], [401.0, 456.45, 289.43, 319.27] ] place_sums = [0, 0, 0, 0] for i, line in enumerate(donations): for j, value in enumerate(line): place_sums[j] += value print(place_sums)Kali ini, kita perlu menyiapkan daftar dengan nilai sementara yang akan menyimpan jumlah kolom. Karena kami memerlukan akses ke indeks, kami menggunakan jenis lain dari for loop – yang mengulang indeks dan nilai menggunakan fungsi enumerate(). Loop luar mengiterasi baris-baris daftar, sedangkan loop dalam mengiterasi nilai-nilai di setiap baris. Di dalam loop dalam, kami menambahkan nilai saat ini dari daftar bersarang (value) ke jumlah kolom masing-masing (place_sums[j])
Dalam pertanyaan ini, kita akan melihat bagaimana memasukkan angka dalam matriks bilangan bulat 3X3 (daftar bersarang) dan menemukan jumlah setiap kolom secara terpisah dalam pemrograman Python. Untuk mengetahui lebih banyak tentang daftar, klik pada pelajaran daftar
T11) Tulis program dengan Python untuk memasukkan angka dalam matriks bilangan bulat 3X3 (daftar bersarang) dan temukan jumlah setiap kolom secara terpisah
Program
a=[[],[],[]] r=0;c=0;cs=0 print('Enter 9 numbers') for r in range(3): for c in range(3): a[r].append(int(input())) for r in range(3): cs=0 for c in range(3): print(a[r][c],end=' ') cs=cs+a[c][r] print(' Column Sum =',cs)_
Keluaran
Enter 9 numbers 18 12 72 10 15 45 38 5 64 18 12 72 Column Sum = 66 10 15 45 Column Sum = 32 38 5 64 Column Sum = 181
Dalam pertanyaan ini, kita akan melihat bagaimana memasukkan angka dalam matriks bilangan bulat 3X3 (daftar bersarang) dan menemukan jumlah setiap baris, setiap kolom, diagonal kanan dan diagonal kiri secara terpisah dalam pemrograman Python. Untuk mengetahui lebih banyak tentang daftar, klik pada pelajaran daftar
T12) Tulis program dengan Python untuk memasukkan angka dalam matriks bilangan bulat 3X3 (daftar bersarang) dan temukan jumlah setiap baris, setiap kolom, diagonal kanan dan diagonal kiri secara terpisah. Diagonal Kanan = \ dan Diagonal Kiri = /
Program
a=[[],[],[]] r=0;c=0;rs=0;cs=0;rd=0;ld=0 print('Enter 9 numbers') for r in range(3): for c in range(3): a[r].append(int(input())) for r in range(3): rs=0 cs=0 rd=rd+a[r][r] ld=ld+a[r][2-r] for c in range(3): print(a[r][c],end=' ') rs=rs+a[r][c]; # row sum cs=cs+a[c][r]; # column sum print(' Row Sum = %d Column Sum = %d' %(rs,cs)) print('Right Diagonal Sum =',rd); print('Left Diagonal Sum =',ld);
Keluaran
Enter 9 numbers 18 12 72 10 15 45 38 5 64 18 12 72 Row Sum = 102 Column Sum = 66 10 15 45 Row Sum = 70 Column Sum = 32 38 5 64 Row Sum = 107 Column Sum = 181 Right Diagonal Sum = 97 Left Diagonal Sum = 125_
Masalah. Diberikan daftar daftar yang mewakili matriks data dengan n baris dan m kolom. Bagaimana cara menjumlahkan kolom matriks ini?
Mari pastikan bahwa Anda berada di halaman yang sama. Berikut adalah representasi grafis dari daftar daftar dan apa yang ingin Anda capai
Contoh. Diberikan kode berikut
# Your list of lists data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # .. Algorithm here ... print(res) # OUTPUT: [12, 15, 18]Latar belakang. Untuk mempelajari lebih lanjut tentang daftar daftar, lihat artikel referensi kami di blog Finxter
Selanjutnya, Anda akan mempelajari tiga metode berbeda untuk menjumlahkan kolom. Mari dapatkan ikhtisar singkat dari ketiga metode—klik "Jalankan" untuk mengeksekusi kode dan lihat apa yang terjadi
Metode 1. Jumlahkan dengan Python (Tanpa Perpustakaan)
Sebuah one-liner sederhana dengan pemahaman daftar dalam kombinasi dengan fungsi zip() pada daftar yang belum dibongkar untuk mengubah daftar daftar melakukan pekerjaan dengan Python
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # Method 1: Pure Python res = [sum(x) for x in zip(*data)] print(res) # [12, 15, 18]_Apakah Anda suka Python one-liners? . Klik untuk memeriksa buku di tab baru
Anda dapat memvisualisasikan eksekusi kode dan objek memori dari kode ini di alat berikut (cukup klik "Berikutnya" untuk melihat bagaimana satu langkah kode dibuka)
Metode 2. Jumlahkan dengan Perpustakaan NumPy
Anda membuat larik NumPy dari data dan meneruskannya ke np. jumlah() fungsi
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # Method 2: NumPy import numpy as np a = np.array(data) res = np.sum(a, axis=0) print(res) # [12 15 18]Argumen axis_ dari fungsi penjumlahan menentukan sepanjang sumbu mana Anda ingin menghitung nilai penjumlahan. Jika Anda ingin menjumlahkan kolom, gunakan axis=0. Jika Anda ingin menjumlahkan baris, gunakan axis=1. Jika Anda ingin menjumlahkan semua nilai, lewati argumen ini
Metode 3. Jumlah() + Peta()
Hanya untuk menunjukkan kepada Anda alternatif lain, inilah salah satu yang menggunakan fungsi map() dan trik zip(*data) kami untuk mengubah urutan "matriks" data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # Method 1: Pure Python res = [sum(x) for x in zip(*data)] print(res) # [12, 15, 18]0
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # Method 3: Map() res = map(sum, zip(*data)) print(list(res)) # [12, 15, 18] _Fungsi data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # Method 1: Pure Python res = [sum(x) for x in zip(*data)] print(res) # [12, 15, 18]1 berlaku data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # Method 1: Pure Python res = [sum(x) for x in zip(*data)] print(res) # [12, 15, 18]2 untuk setiap elemen di data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # Method 1: Pure Python res = [sum(x) for x in zip(*data)] print(res) # [12, 15, 18]3. Sebagai alternatif, Anda juga dapat menggunakan pemahaman daftar seperti yang ditunjukkan pada metode 1 dalam tutorial ini. Faktanya, Guido van Rossum, pencipta Python dan diktator baik hati Python untuk kehidupan (BDFL), lebih memilih pemahaman daftar daripada fungsi map()
Artikel terkait
- Bagaimana cara Rata-Rata pada Daftar Daftar dengan Python?
- Bagaimana Menjumlahkan Deretan Daftar Daftar?
Kemana Pergi Dari Sini?
Cukup teori. Mari kita berlatih
Pembuat kode dibayar enam digit atau lebih karena mereka dapat memecahkan masalah dengan lebih efektif menggunakan kecerdasan mesin dan otomasi
Untuk menjadi lebih sukses dalam pengkodean, selesaikan lebih banyak masalah nyata untuk orang-orang nyata. Begitulah cara Anda memoles keterampilan yang benar-benar Anda butuhkan dalam latihan. Lagi pula, apa gunanya teori belajar yang tidak dibutuhkan siapa pun?
Anda membangun keterampilan pengkodean bernilai tinggi dengan mengerjakan proyek pengkodean praktis
Apakah Anda ingin berhenti belajar dengan proyek mainan dan fokus pada proyek kode praktis yang memberi Anda uang dan memecahkan masalah nyata bagi orang-orang?
🚀 Jika jawaban Anda adalah YA. , pertimbangkan untuk menjadi pengembang lepas Python. Ini adalah cara terbaik untuk mendekati tugas meningkatkan keterampilan Python Anda—bahkan jika Anda benar-benar pemula
Jika Anda hanya ingin belajar tentang peluang freelancing, jangan ragu untuk menonton webinar gratis saya “Bagaimana Membangun Keterampilan Berpenghasilan Tinggi Anda Python” dan pelajari bagaimana saya mengembangkan bisnis coding saya secara online dan bagaimana Anda juga bisa—dari kenyamanan Anda
Bergabunglah dengan webinar gratis sekarang
Chris
Saat bekerja sebagai peneliti dalam sistem terdistribusi, Dr. Christian Mayer menemukan cintanya untuk mengajar siswa ilmu komputer
Untuk membantu siswa mencapai tingkat kesuksesan Python yang lebih tinggi, dia mendirikan situs web pendidikan pemrograman Finxter. com. Dia adalah penulis buku pemrograman populer Python One-Liners (NoStarch 2020), rekan penulis seri Coffee Break Python dari buku yang diterbitkan sendiri, penggemar ilmu komputer, pekerja lepas, dan pemilik salah satu dari 10 blog Python terbesar di dunia
Kesukaannya adalah menulis, membaca, dan coding. Tetapi hasrat terbesarnya adalah untuk melayani calon pembuat kode melalui Finxter dan membantu mereka meningkatkan keterampilan mereka. Anda dapat bergabung dengan akademi email gratisnya di sini