Ada tiga fungsi dasar dalam Python, yaitu filter(), map() dan pengurangan(). Fungsi tersebut masing-masing memberi kita fungsi pemfilteran, pemetaan, dan agregasi. Di bagian sebelumnya, kita hanya menggunakan fungsi filter() yang dikombinasikan dengan fungsi anonim. Di bawah ini kami akan memperkenalkan penggunaannya secara detail.
Saat memfilter dan memfilter data, kami biasanya menggunakan fungsi filter() untuk membantu kami menyelesaikan masalah dengan cepat. Format sintaksisnya adalah:
filter (fungsi, objek yang dapat diubah)
Pada fungsi filter, letakkan metode pemfilteran atau filtering kita, yaitu nama fungsi , di depan, dan simpan objek iterable di belakang.
deftest(x):ifx%2==0:returnxmy_list=[1,2,3,4,5,6]print(filter(test,my_list))#Hanya perlu beberapa nama fungsi, tidak diperlukan parameter
Hasil keluaran:
<filterobjectat0x034C2DD8>
Mengenai contoh ini, pertama-tama kita mendefinisikan fungsi test(), yang mengembalikan nilainya jika x adalah bilangan genap, dan kemudian menggunakan fungsi test() untuk memfilter daftar my_list melalui fungsi filter(), namun hasil keluarannya adalah < filter objek di 0x034C2DD8> , di sini kita perlu mencatat bahwa nilai kembalian dari fungsi filter() adalah objek yang dapat diubah, dan kita perlu mengakses nilai secara iteratif, atau menggunakan fungsi list() untuk memaksa konversi tipe.
deftest(x):ifx%2==0:returnxmy_list=[1,2,3,4,5,6]print(filter(test,my_list))foriinfilter(test,my_list):print('setelah iterasi Data: ',i)print('Gunakan metode list():',list(filter(test,my_list)))
Outputnya adalah:
Data dalam iterasi: 2 Data dalam iterasi: 4 Data dalam iterasi: 6 Menggunakan metode list(): [2, 4, 6]
Kita telah menggunakan fungsi map() berkali-kali sebelumnya. Misalnya, saat kita memasukkan beberapa nilai, kita akan menggunakan fungsi map() Saat kita perlu memasukkan empat nilai:
a,b,c,d=peta(int,input().split())print(a,b,c,d)
Format sintaksis fungsi map() adalah:
peta (fungsi, objek yang dapat diubah)
Saat menggunakan fungsi map(), kami kebanyakan menggunakannya untuk pemrosesan data. Data dalam objek iterable disimpan setelah diproses oleh fungsi tersebut.
Pertama-tama mari kita lihat contoh memasukkan empat nilai di atas. Int adalah sebuah fungsi, dan nilai yang dimasukkan oleh input().splite adalah objek yang dapat diubah, yang disimpan dalam objek peta setelah diproses oleh fungsi int.
Kita bisa menggunakan fungsi map() untuk mengolah semua data secara berurutan melalui suatu fungsi, lihat contoh berikut:
Kami menyimpan huruf-huruf dalam daftar, dan jika ada huruf kecil, jadikan huruf besar.
Kodenya adalah sebagai berikut:
deftest(x):ifx.islower():returnx.upper()else:returnxmy_list=['d','o','t','C','p','P']print(list(map (tes, daftar_saya)))
Outputnya adalah:
['D','O','T','C','P','P']
Fungsi test() pertama-tama akan menilai x. Jika berupa huruf kecil, ia akan mengembalikan huruf besarnya.
Fungsi pengurangan() digunakan untuk menggabungkan objek yang dapat diubah melalui metode fungsional.
Format sintaksnya adalah:
kurangi(fungsi, objek yang dapat diubah[, nilai awal])
Misalnya, kita mengetahui bahwa sebuah daftar adalah [1,2,3,4], dan kita perlu mencari jumlah semua item dalam daftar dikalikan secara berurutan.
fungsi fromfunctoolsimportreduce#reduce didefinisikan dalam modul functools dan perlu diperkenalkan deftest(x,y):returnx*ymy_list=[1,2,3,4]print(reduce(test,my_list))
Outputnya adalah:
Baris kode pertama memperkenalkan metode ini, dan modul akan dijelaskan nanti. Fungsi test() mengembalikan dua data untuk dikalikan, dan kemudian daftar my_list diproses melalui fungsi pengurangan().
Proses pengolahannya adalah sebagai berikut:
Jalankan langkah pertama terlebih dahulu, lalu dapatkan hasilnya dan kalikan dengan langkah berikutnya, lalu lanjutkan ke digit terakhir.
Dua fungsi pertama dari tiga fungsi ini umum digunakan. Menguasai ketiga fungsi ini dapat membantu kita memecahkan serangkaian masalah kompleks. Pada bagian selanjutnya, kita akan mempelajari tentang fungsi rekursif.