Membangun daftar dari awal dengan mengulangi urutan dan melakukan beberapa perhitungan pada setiap elemen dalam urutan Show
Membangun daftar dari awal dengan mengulangi urutan bersarang
Membangun daftar dari awal dengan memfilter urutan menurut beberapa kriteria atau kriteria
Peta, Lambda, dan FilterSalah satu cara untuk mencapai tujuan yang sama seperti pada contoh di atas adalah dengan menggunakan beberapa alat Python dari pemrograman fungsional. , , dan lambda() . Fungsi menerapkan fungsi ke setiap anggota iterable dan mengembalikan hasilnya. Biasanya, seseorang akan menggunakan fungsi sebaris anonim seperti yang didefinisikan oleh lambda, tetapi dimungkinkan untuk menggunakan fungsi apa pun. Itu juga dapat dicapai dengan menggunakan sebagai berikut >>> def square(x): .. return x**2 ... >>> squares = map(square, range(10)) >>> print squares [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]_ Dalam kasus , fungsi sudah ada, jadi kita bisa menggunakannya untuk menerapkannya ke setiap elemen daftar >>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] >>> lengths = map(len, names) >>> print lengths [4, 3, 3, 5, 6, 7, 4] lambdaPada contoh peta pertama di atas, kita membuat sebuah fungsi, yang disebut persegi , sehingga peta akan memiliki fungsi untuk diterapkan pada deret. Ini adalah kejadian umum, jadi Python menyediakan kemampuan untuk membuat fungsi inline anonim sederhana (tidak ada pernyataan yang diizinkan secara internal) menggunakan apa yang disebut. Jadi, fungsi anonim yang mengembalikan kuadrat dari argumennya dapat ditulis sebagai lambda x. x**2 . Artinya, “Ini adalah fungsi anonim (tanpa nama) yang mengambil satu argumen, disebut x, dan mengembalikan kuadrat dari x. Karena bentuk lambda benar-benar mengevaluasi fungsi, kita juga bisa menyebutnya sebaris. (Ini biasanya hal yang konyol untuk dilakukan, tetapi kami menunjukkannya di sini untuk menunjukkan bahwa bentuk lambda sebenarnya adalah objek fungsi sebaris. ). >>> print (lambda x: x**2)(5) # first parens contain a lambda form that is a squaring function, second parens represent calling that function 25 >>> # Make a function of two arguments (x and y) that returns their product, then call the function with 3 and 4: >>> print (lambda x, y: x*y)(3, 4) 12 >>> print (lambda x: x.startswith('B'))('Bob') True >>> print (lambda x: x.startswith('B'))('Robert') False >>> incrementer = lambda input: input+1 >>> # above is same as def incrementer(input): return input+1 >>> # now we call it >>> print incrementer(3) 4_ Menggunakan lambda dan peta bersamaFormulir Lambda dapat digunakan sebagai argumen fungsi yang diperlukan untuk fungsi tersebut. Misalnya, dapat ditulis sebagai >>> squares = map(lambda x: x**2, range(10)) >>> print squares [0, 1, 4, 9, 16, 25, 36, 49, 64, 81_ Dalam bahasa Inggris, ini berarti, “Terapkan fungsi yang mengkuadratkan argumennya (bentuk lambda) ke setiap anggota daftar bilangan bulat dari 0 hingga 9 (the ), dan simpan hasilnya dalam daftar yang disebut kuadrat Dan contoh di atas juga dapat dicapai dengan fungsi bawaan. Filter mengambil fungsi yang mengembalikan atau dan menerapkannya ke urutan, mengembalikan daftar hanya anggota urutan yang fungsinya dikembalikan Formulir Lambda juga dapat digunakan dengan fungsi filter; . Dalam , daftar kotak disaring menurut apakah entri yang diberikan lebih besar dari 5 dan kurang dari 50. Bentuk lambda yang kembali saat kondisi ini terpenuhi adalah lambda x. x > 5 dan x . Dengan demikian, kita dapat mereproduksi contoh kelima sebagai berikut. < 50. Thus, we can reproduce the fifth example as follows: >>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] >>> lengths = [] >>> for name in names: .. lengths.append(len(name)) ... >>> print lengths [4, 3, 3, 5, 6, 7, 4]_0 Dalam bahasa Inggris, ini berarti, “Temukan setiap anggota dari daftar kotak yang anggotanya lebih besar dari 5 dan kurang dari 50 (setiap anggota yang lambda x: x > 5 dan x . < 50 returns ), and store that in a new variable called special_squares. Similarly, the sixth example >>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] >>> lengths = [] >>> for name in names: .. lengths.append(len(name)) ... >>> print lengths [4, 3, 3, 5, 6, 7, 4]_1 Daftar PemahamanSemua dari enam contoh asli dapat dicapai dengan menggunakan sintaks yang konsisten, bersih, dan elegan yang disebut Pemahaman daftar sederhanaBentuk paling sederhana dari pemahaman daftar adalah [ ekspresi-melibatkan-variabel-loop untuk variabel-loop in sequence ] Ini akan melewati setiap elemen urutan , secara berturut-turut menyetel loop-variable equal to every element one at a time, and will then build up a list by evaluating expression-involving-loop-variable for each one. This eliminates the need to use lambda forms, and thus generally produces a much more readable code than using and a more compact code than using a for-loop. The first example >>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] >>> lengths = [] >>> for name in names: .. lengths.append(len(name)) ... >>> print lengths [4, 3, 3, 5, 6, 7, 4]_2 Beberapa contoh sederhana lainnya
Perhatikan bahwa ekspresi kompleks dapat dimasukkan ke dalam slot untuk variabel-loop-ekspresi yang melibatkan-ekspresi . Misalnya, di sini kami membuat daftar nama, huruf pertama, dan panjang untuk setiap nama dalam daftar. >>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] >>> lengths = [] >>> for name in names: .. lengths.append(len(name)) ... >>> print lengths [4, 3, 3, 5, 6, 7, 4]_6 Di mana [nama, nama[0], len(nama)] occupies the expression-involving-loop-variable slot, so that the list comprehension creates a list of [name, name[0], len(name)] for every name in the names sequence. Pemahaman daftar bersarangPemahaman daftar dapat disarangkan, dalam hal ini mereka mengambil bentuk berikut [ expression-involving-loop-variables for outer-loop-variable in outer-sequence for inner-loop-variable in inner-sequence ] Ini setara dengan menulis >>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] >>> lengths = [] >>> for name in names: .. lengths.append(len(name)) ... >>> print lengths [4, 3, 3, 5, 6, 7, 4]_7 Dengan demikian, secara kompak dapat ditulis sebagai >>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] >>> lengths = [] >>> for name in names: .. lengths.append(len(name)) ... >>> print lengths [4, 3, 3, 5, 6, 7, 4]_8 Dan contoh dapat ditulis sebagai >>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] >>> lengths = [] >>> for name in names: .. lengths.append(len(name)) ... >>> print lengths [4, 3, 3, 5, 6, 7, 4]_9 Pemahaman daftar yang difilterBentuk terakhir dari pemahaman daftar melibatkan pembuatan daftar dan memfilternya dengan cara yang sama seperti menggunakan. Bentuk pemfilteran pemahaman daftar mengambil bentuk berikut [ ekspresi-melibatkan-variabel-loop untuk variabel-loop in sequence if boolean-expression-involving-loop-variable ] Bentuk ini mirip dengan bentuk sederhana pemahaman daftar, tetapi ini mengevaluasi boolean-expression-involving-loop-variable untuk setiap item . Jadi kita dapat menggunakan pemahaman daftar untuk menulis ulang sebagai >>> possible_choices = [] >>> for drink in ['water', 'tea', 'juice']: .. for food in ['ham', 'eggs', 'spam']: .. possible_choices.append([drink,food]) ... >>> print possible_choices [['water', 'ham'], ['water', 'eggs'], ['water', 'spam'], ['tea', 'ham'], ['tea', 'eggs'], ['tea', 'spam'], ['juice', 'ham'], ['juice', 'eggs'], ['juice', 'spam']]0 Perhatikan bahwa hal di atas tidak efisien, karena harus menghitung kuadrat dari x tiga kali terpisah untuk setiap elemen dalam loop. Dengan demikian, berikut ini adalah pendekatan yang setara dan lebih efisien. >>> possible_choices = [] >>> for drink in ['water', 'tea', 'juice']: .. for food in ['ham', 'eggs', 'spam']: .. possible_choices.append([drink,food]) ... >>> print possible_choices [['water', 'ham'], ['water', 'eggs'], ['water', 'spam'], ['tea', 'ham'], ['tea', 'eggs'], ['tea', 'spam'], ['juice', 'ham'], ['juice', 'eggs'], ['juice', 'spam']]1 Akhirnya, perhatikan bahwa hal tersebut di atas dapat ditulis pada satu baris menggunakan sepasang daftar pemahaman sebagai berikut Bagaimana Anda memfilter daftar dengan lambda di Python?Untuk memfilter daftar dengan Python, Anda dapat menggunakan fungsi filter() bawaan. . Argumen pertama adalah kondisi pemfilteran, yang didefinisikan sebagai fungsi. . Argumen kedua adalah iterable untuk difilter—fungsi lambda memeriksa setiap elemen dalam iterable apakah elemen lolos filter atau tidak Apa itu filter lambda?Kita dapat menggunakan fungsi Lambda di dalam fungsi bawaan filter() untuk menemukan semua bilangan yang habis dibagi 13 dalam daftar . Dalam Python, fungsi anonim berarti suatu fungsi tanpa nama. Fungsi filter() di Python menggunakan fungsi dan daftar sebagai argumen.
Apa itu lambda () dengan Python?lambda adalah kata kunci dalam Python untuk mendefinisikan fungsi anonim . argumen adalah placeholder, yaitu variabel yang akan digunakan untuk menyimpan nilai yang ingin Anda berikan ke ekspresi fungsi. Fungsi lambda dapat memiliki banyak variabel tergantung pada apa yang ingin Anda capai.
Apa itu lambda dalam contoh Python?Fungsi lambda adalah fungsi anonim kecil . Fungsi lambda dapat mengambil sejumlah argumen, tetapi hanya dapat memiliki satu ekspresi. |