Catatan. Di sini, var adalah nama yang diberikan untuk variabel iterasi, iterable dapat diganti dengan fungsi range() dan dapat berupa tipe data apa pun. Pernyataan adalah langkah tindakan yang akan dilakukan Show
Catatan. Untuk informasi lebih lanjut, lihat Python For Loops Contoh Piton
for var in iterable : statements0 a for var in iterable : statements_2 for var in iterable : statements_2 for var in iterable : statements4 for var in iterable : statements5 for var in iterable : statements6 for var in iterable : statements7 for var in iterable : statements8 for var in iterable : statements9 <map object at 0x7fe413cf9b00> [0, 1, 9, 20.25, 9801, 0.0064] 0 1 9 20.25 9801 0.0064_____________________________________________________________________G Saat kita memanggil _5 dengan argumen tersebut, itu tidak hanya menjumlahkan dua angka pertama. Sebaliknya itu menambahkan semua angka bersama-sama
Fungsi pertama itu dipanggil berulang kali untuk menjumlahkan semua angka dalam daftar ini. Fungsi _5 pertama-tama memanggil fungsi yang diberikan pada dua item pertama di 1, lalu mengambil hasil yang diperolehnya kembali dan menggunakannya bersama dengan angka ketiga sebagai dua argumen baru, dan seterusnyaIni adalah contoh yang sedikit konyol, karena kita memiliki fungsi yang dibangun di dalam Python yang dapat melakukan ini untuk kita. Fungsi 2 bawaan lebih mudah dipahami dan lebih cepat daripada menggunakan 5
Bahkan mengalikan angka bukanlah contoh yang bagus untuk 5
Saat mengalikan lebih baik menggunakan fungsi 5 dalam modul 6 Python (ditambahkan dalam Python 3. 8) karena sekali lagi lebih cepat dan lebih mudah dibaca 5
Kedua contoh itu adalah penggunaan _5 yang konyol, tetapi tidak semua panggilan 5 dapat diringkas hanya dalam satu baris kode sajaContoh yang lebih kompleksFungsi _0 ini memungkinkan kita untuk meminta secara mendalam kamus kamus bersarang
Misalnya, inilah kamus kamus
Kami mungkin ingin mencari kunci di kamus ini, lalu mencari kunci di kamus yang kami dapatkan kembali, dan kunci di kamus kami kembali ke sana, dan kunci di dalamnya untuk akhirnya mendapatkan nilai yang kami cari
Alih-alih melakukan kueri ini secara manual, kita dapat membuat tupel string yang mewakili kunci ini, dan meneruskan tupel itu ke fungsi 0 kita sehingga dapat melakukan kueri untuk kita
Fungsi _0 ini berfungsi, dan sangat kuat. Tapi itu juga cukup rumit
Secara pribadi, saya menemukan fungsi _0 ini sulit dimengerti. Kami telah memadatkan sedikit logika menjadi hanya satu baris kodeSaya lebih suka melihat fungsi _0 ini diimplementasikan menggunakan 5 loop _1Saya menemukan bahwa 5 loop lebih mudah dipahami daripada panggilan 5 yang setaraJangan menemukan kembali rodaBahkan jika Anda terbiasa dengan teknik pemrograman fungsional dan sangat menyukai 5, Anda mungkin ingin bertanya pada diri sendiri
Misalnya, bertahun-tahun yang lalu, saya melihat penggunaan 5 ini sebagai jawaban atas pertanyaan pemrograman online _2Kode ini memeriksa apakah semua angka dalam daftar yang diberikan lebih besar dari nol Kode ini berfungsi tetapi ada cara yang lebih baik untuk menyelesaikan tugas ini dengan Python Fungsi _2 bawaan di Python dapat menerima ekspresi generator yang melakukan tugas yang sama untuk kita _3Saya menemukan bahwa panggilan _2 lebih mudah dibaca, tetapi juga lebih efisien daripada panggilan 5Jika kita memiliki banyak angka dan salah satunya kurang dari atau sama dengan nol, fungsi 2 akan kembali lebih awal (segera setelah menemukan angka yang tidak sesuai dengan kondisi kita). Sedangkan _5 akan selalu berputar sampai akhirCobalah untuk menghindari menemukan kembali roda dengan 5. Kode Anda akan lebih mudah dibaca (dan terkadang bahkan lebih efisien) tanpa 6Operasi umum >>> from functools import reduce >>> numbers = [2, 1, 3, 4, 7, 11, 18] >>> reduce(lambda x, y: x + y, numbers) _5 dengan PythonBerikut adalah beberapa operasi reduksi umum dalam Python serta beberapa alat yang disertakan dalam Python yang seringkali lebih efisien dan lebih mudah dibaca daripada panggilan 5 yang setaraOperationWith 6Without 5 3 4 5 6Join strings 7 8Merge dictionaries 9 0Set union 1 2Set intersection 3 4Beberapa di antaranya adalah fungsi bawaan, beberapa metode pada objek bawaan, dan beberapa di perpustakaan standar Fungsi 5 Python (dalam modul 4) dapat mengimplementasikan operasi reduksi kompleks hanya dengan satu baris kode. Tetapi satu baris kode itu kadang-kadang lebih membingungkan dan kurang efisien daripada loop 5 yang setara atau alat reduksi khusus lainnya yang disertakan dengan Python. Jadi saya biasanya menyarankan untuk menghindari 6
Apa yang lebih cepat dari for loop di Python?Cara yang lebih cepat untuk mengulang di Python adalah menggunakan fungsi bawaan . Dalam contoh kita, kita dapat mengganti perulangan for dengan fungsi penjumlahan. Fungsi ini akan menjumlahkan nilai di dalam rentang angka. Kode di atas mengambil 0. 84 detik.
Apakah filter Python lebih cepat daripada for loop?Fungsi peta dan filter tidak menunjukkan peningkatan kecepatan yang signifikan dibandingkan dengan loop Python murni .
Apa yang lebih cepat dari for loop?Pemahaman daftar lebih cepat daripada perulangan for untuk membuat daftar.
Mengapa pengurangan tidak sepenuhnya direkomendasikan di Python 3?Argumen yang menentang pengurangan adalah bahwa itu cenderung salah diterapkan, membahayakan keterbacaan dan tidak sesuai dengan orientasi non-fungsional Python. |