Tulis program python untuk memfilter daftar bilangan bulat menggunakan lambda.

Membangun daftar dari awal dengan mengulangi urutan dan melakukan beberapa perhitungan pada setiap elemen dalam urutan

  1. Misalnya, kita ingin membuat daftar kuadrat bilangan bulat dari 0 hingga 9

    >>> squares = [] # start with an empty list >>> for x in range(10): # step over every element in the list of integers from 0 to 9 .. squares.append(x**2) # grow the list one element at a time ... >>> print squares [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

  1. Misalkan kita ingin membuat daftar panjang 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] _

  • Membangun daftar dari awal dengan mengulangi urutan bersarang

    1. Misalnya, misalkan kita menginginkan daftar semua kemungkinan pasangan minuman dan makanan dari daftar ['air', 'teh' . 'juice'] and ['ham', 'eggs', 'spam'], respectively:

      >>> 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. Misalkan kita menginginkan daftar koordinat pada kisi persegi panjang

      >>> coords = [] >>> for x in range(5): .. for y in range(3): .. coordinate = (x, y) .. coords.append(coordinate) ... >>> print coords [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2), (3, 0), (3, 1), (3, 2), (4, 0), (4, 1), (4, 2)]

  • Membangun daftar dari awal dengan memfilter urutan menurut beberapa kriteria atau kriteria

    1. Misalnya, kita ingin daftar kuadrat bilangan bulat dari 0 sampai 9 di mana kuadrat lebih besar dari 5 dan kurang dari 50

      >>> special_squares = [] >>> for x in range(10): .. square = x**2 .. if square > 5 and square < 50: .. special_squares.append(square) ... >>> print special_squares [9, 16, 25, 36, 49] _

    1. Misalkan kita ingin mengambil daftar nama dan hanya menemukan yang dimulai dengan huruf B

      >>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach'] >>> b_names = [] >>> for name in names: .. if name.startswith('B'): .. b_names.append(name) ... >>> print b_names ['Bob', 'Barbara']

  • Peta, Lambda, dan Filter

    Salah 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]

    lambda

    Pada 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 bersama

    Formulir 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. 5 dan x .

    Postingan terbaru

    LIHAT SEMUA