Python periksa semua elemen dalam daftar benar

Saat memprogram, Anda sering perlu memeriksa apakah semua item dalam iterable benar. Pengkodean fungsi ini berulang kali dapat mengganggu dan tidak efisien. Untungnya, Python menyediakan fungsi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 bawaan untuk mengatasi masalah ini. Fungsi ini mengambil iterable dan memeriksa semua itemnya untuk nilai kebenaran, yang berguna untuk mengetahui apakah item tersebut memiliki properti tertentu atau memenuhi kondisi tertentu

Show

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 Python adalah alat yang ampuh yang dapat membantu Anda menulis kode yang bersih, mudah dibaca, dan efisien di Python

Dalam tutorial ini, Anda akan mempelajari caranya

  • Periksa apakah semua item dalam iterable benar dengan menggunakan
    >>> bool_exps = [
    ..     5 > 2,
    ..     1 == 1,
    ..     42 < 50,
    .. ]
    >>> all(bool_exps)
    True
    
    >>> objects = ["Hello!", 42, {}]
    >>> all(objects)
    False
    
    >>> general_exps = [
    ..     5 ** 2,
    ..     42 - 3,
    ..     int("42")
    .. ]
    >>> all(general_exps)
    True
    
    >>> empty = []
    >>> all(empty)
    True
    
    3
  • Gunakan
    >>> bool_exps = [
    ..     5 > 2,
    ..     1 == 1,
    ..     42 < 50,
    .. ]
    >>> all(bool_exps)
    True
    
    >>> objects = ["Hello!", 42, {}]
    >>> all(objects)
    False
    
    >>> general_exps = [
    ..     5 ** 2,
    ..     42 - 3,
    ..     int("42")
    .. ]
    >>> all(general_exps)
    True
    
    >>> empty = []
    >>> all(empty)
    True
    
    _3 dengan tipe iterable yang berbeda
  • Gabungkan
    >>> bool_exps = [
    ..     5 > 2,
    ..     1 == 1,
    ..     42 < 50,
    .. ]
    >>> all(bool_exps)
    True
    
    >>> objects = ["Hello!", 42, {}]
    >>> all(objects)
    False
    
    >>> general_exps = [
    ..     5 ** 2,
    ..     42 - 3,
    ..     int("42")
    .. ]
    >>> all(general_exps)
    True
    
    >>> empty = []
    >>> all(empty)
    True
    
    _3 dengan pemahaman dan ekspresi generator
  • Bedakan antara
    >>> bool_exps = [
    ..     5 > 2,
    ..     1 == 1,
    ..     42 < 50,
    .. ]
    >>> all(bool_exps)
    True
    
    >>> objects = ["Hello!", 42, {}]
    >>> all(objects)
    False
    
    >>> general_exps = [
    ..     5 ** 2,
    ..     42 - 3,
    ..     int("42")
    .. ]
    >>> all(general_exps)
    True
    
    >>> empty = []
    >>> all(empty)
    True
    
    _3 dan operator Boolean
    >>> bool_exps = [
    ..     5 > 2,
    ..     1 == 1,
    ..     42 < 50,
    .. ]
    >>> all(bool_exps)
    True
    
    >>> objects = ["Hello!", 42, {}]
    >>> all(objects)
    False
    
    >>> general_exps = [
    ..     5 ** 2,
    ..     42 - 3,
    ..     int("42")
    .. ]
    >>> all(general_exps)
    True
    
    >>> empty = []
    >>> all(empty)
    True
    
    9

Untuk melengkapi pengetahuan ini, Anda akan membuat kode beberapa contoh yang menampilkan kasus penggunaan menarik dari

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dan menyoroti banyak cara untuk menggunakan fungsi ini dalam pemrograman Python

Untuk memahami topik dalam tutorial ini, Anda harus memiliki pengetahuan dasar tentang beberapa konsep Python, seperti struktur data yang dapat diulang, tipe Boolean, ekspresi, , pemahaman daftar, dan

Unduhan PDF gratis. Lembar Curang Python 3

Mengevaluasi Nilai Kebenaran Item di Iterables

Masalah yang cukup umum dalam pemrograman adalah menentukan apakah semua item dalam daftar atau larik benar atau tidak. Misalnya, Anda mungkin memiliki daftar ketentuan berikut

  • >>> all([True, True, True])
    True
    
    >>> all([False, False, False])
    False
    
    >>> all([False, True, True])
    False
    
    >>> all([])
    True
    
    _1
  • >>> all([True, True, True])
    True
    
    >>> all([False, False, False])
    False
    
    >>> all([False, True, True])
    False
    
    >>> all([])
    True
    
    _2
  • >>> all([True, True, True])
    True
    
    >>> all([False, False, False])
    False
    
    >>> all([False, True, True])
    False
    
    >>> all([])
    True
    
    _3

Untuk mengetahui apakah kondisi ini benar, Anda perlu mengulanginya dan menguji kebenaran setiap kondisi. Dalam contoh ini, Anda memiliki

>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
_1 benar,
>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
2 benar, dan
>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
3 juga benar. Akibatnya, Anda dapat mengatakan bahwa semua kondisi ini benar. Jika setidaknya salah satu syarat salah, maka Anda akan mengatakan bahwa tidak semua syarat benar

Perhatikan bahwa segera setelah Anda menemukan kondisi yang salah, Anda dapat berhenti mengevaluasi kondisi karena, dalam hal ini, Anda sudah mengetahui hasil akhirnya. tidak semuanya benar

Untuk mengatasi masalah ini dengan menulis kode Python khusus, Anda dapat menggunakan loop

>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
7 untuk mengulangi setiap kondisi dan mengevaluasi kebenarannya. Perulangan Anda akan berulang hingga menemukan item yang salah, pada saat itu akan berhenti karena Anda sudah mendapatkan hasilnya

>>>

>>> def all_true(iterable):
..     for item in iterable:
..         if not item:
..             return False
..     return True
...
_

Fungsi ini menggunakan iterable sebagai argumen. Perulangan berulang pada argumen input sementara pernyataan

>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
8 bersyarat memeriksa apakah ada item yang salah menggunakan operator
>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
9. Jika item salah, maka fungsi segera mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0, menandakan bahwa tidak semua item benar. Jika tidak, ia mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1

Fungsi ini cukup umum. Dibutuhkan iterable, yang berarti Anda dapat mengirimkan daftar, tuple, string, kamus, atau struktur data iterable lainnya. Untuk memeriksa apakah item saat ini benar atau salah,

>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
2 menggunakan operator
>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
9 untuk membalikkan nilai kebenaran operannya. Dengan kata lain, ia mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 jika operannya bernilai false dan sebaliknya

Operator Boolean Python dapat mengevaluasi nilai kebenaran dari ekspresi dan objek, yang menjamin bahwa fungsi Anda dapat mengambil iterable yang berisi objek, ekspresi, atau keduanya. Misalnya, jika Anda mengirimkan iterable ekspresi Boolean, maka

>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
9 hanya mengevaluasi ekspresi dan meniadakan hasilnya

Inilah

>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
_2 beraksi

>>>

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
_

Karena semua ekspresi dalam input iterable adalah benar,

>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
9 meniadakan hasilnya, dan blok kode
>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
8 tidak pernah berjalan. Dalam hal ini,
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
_2 mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1

Hal serupa terjadi ketika input iterable menyimpan objek Python dan ekspresi non-Boolean

>>>

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
_

Pada contoh pertama, daftar masukan berisi objek Python biasa, termasuk string, angka, dan kamus. Dalam hal ini,

>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
2 mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0 karena kamus kosong dan dievaluasi menjadi false dengan Python

Untuk bekerja pada objek, Python memiliki seperangkat aturan internal untuk objek yang dinilai salah

  • Konstanta negatif yang inheren, seperti
    >>> # With tuples
    >>> all((1, 2, 3))
    True
    >>> all((0, 1, 2, 3))
    False
    >>> all(())
    True
    >>> all(tuple())
    True
    
    >>> # With range objects
    >>> all(range(10))
    False
    >>> all(range(1, 11))
    True
    >>> all(range(0))
    True
    
    3 dan
    >>> def is_true(value):
    ..     print("Side effect!")
    ..     return bool(value)
    ...
    
    >>> values = [0, 1]
    
    >>> conditions = (is_true(n) for n in values)
    >>> all(conditions)
    Side effect!
    False
    
    >>> conditions = (is_true(n) for n in reversed(values))
    >>> all(conditions)
    Side effect!
    Side effect!
    False
    
    0
  • Jenis numerik dengan nilai nol, seperti
    >>> # With tuples
    >>> all((1, 2, 3))
    True
    >>> all((0, 1, 2, 3))
    False
    >>> all(())
    True
    >>> all(tuple())
    True
    
    >>> # With range objects
    >>> all(range(10))
    False
    >>> all(range(1, 11))
    True
    >>> all(range(0))
    True
    
    5,
    >>> # With tuples
    >>> all((1, 2, 3))
    True
    >>> all((0, 1, 2, 3))
    False
    >>> all(())
    True
    >>> all(tuple())
    True
    
    >>> # With range objects
    >>> all(range(10))
    False
    >>> all(range(1, 11))
    True
    >>> all(range(0))
    True
    
    6,
    >>> # With tuples
    >>> all((1, 2, 3))
    True
    >>> all((0, 1, 2, 3))
    False
    >>> all(())
    True
    >>> all(tuple())
    True
    
    >>> # With range objects
    >>> all(range(10))
    False
    >>> all(range(1, 11))
    True
    >>> all(range(0))
    True
    
    7, , dan
    >>> # With tuples
    >>> all((1, 2, 3))
    True
    >>> all((0, 1, 2, 3))
    False
    >>> all(())
    True
    >>> all(tuple())
    True
    
    >>> # With range objects
    >>> all(range(10))
    False
    >>> all(range(1, 11))
    True
    >>> all(range(0))
    True
    
    9
  • Urutan dan koleksi kosong, seperti
    >>> all({"gold": 1, "silver": 2, "bronze": 3})
    True
    
    >>> all({0: "zero", 1: "one", 2: "two"})
    False
    
    0,
    >>> all({"gold": 1, "silver": 2, "bronze": 3})
    True
    
    >>> all({0: "zero", 1: "one", 2: "two"})
    False
    
    1,
    >>> all({"gold": 1, "silver": 2, "bronze": 3})
    True
    
    >>> all({0: "zero", 1: "one", 2: "two"})
    False
    
    2,
    >>> all({"gold": 1, "silver": 2, "bronze": 3})
    True
    
    >>> all({0: "zero", 1: "one", 2: "two"})
    False
    
    3,
    >>> all({"gold": 1, "silver": 2, "bronze": 3})
    True
    
    >>> all({0: "zero", 1: "one", 2: "two"})
    False
    
    4, dan
    >>> all({"gold": 1, "silver": 2, "bronze": 3})
    True
    
    >>> all({0: "zero", 1: "one", 2: "two"})
    False
    
    5
  • Objek yang mengimplementasikan dengan nilai pengembalian
    >>> def is_true(value):
    ..     print("Side effect!")
    ..     return bool(value)
    ...
    
    >>> values = [0, 1]
    
    >>> conditions = (is_true(n) for n in values)
    >>> all(conditions)
    Side effect!
    False
    
    >>> conditions = (is_true(n) for n in reversed(values))
    >>> all(conditions)
    Side effect!
    Side effect!
    False
    
    0 atau dengan nilai pengembalian
    >>> # With tuples
    >>> all((1, 2, 3))
    True
    >>> all((0, 1, 2, 3))
    False
    >>> all(())
    True
    >>> all(tuple())
    True
    
    >>> # With range objects
    >>> all(range(10))
    False
    >>> all(range(1, 11))
    True
    >>> all(range(0))
    True
    
    5

Objek lain apa pun dievaluasi sebagai benar saat Anda menguji kebenarannya dengan Python

Dalam contoh kedua, daftar input berisi ekspresi umum Python, seperti ekspresi matematika dan pemanggilan fungsi. Dalam hal ini, Python pertama mengevaluasi ekspresi untuk mendapatkan nilai yang dihasilkan, dan kemudian memeriksa kebenaran nilai tersebut

Contoh ketiga menyoroti detail penting dari

>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
2. Ketika input iterable kosong, maka loop
>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
7 tidak berjalan, dan fungsi mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 segera. Perilaku ini mungkin tampak aneh pada pandangan pertama. Namun, logika di baliknya adalah jika tidak ada item dalam input yang dapat diubah, maka tidak ada cara untuk mengatakan jika ada item yang salah. Jadi, fungsi mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
_1 dengan iterables kosong

Meskipun pengkodean

>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
_2 cukup mudah dengan Python, menulis fungsi kustom ini dapat mengganggu setiap kali Anda membutuhkan fungsinya. Menentukan apakah semua item dalam iterable benar adalah tugas umum dalam pemrograman sehingga Python menyediakan fungsi bawaan untuk pekerjaan itu

Hilangkan iklan

Memulai Dengan Python >>> bool_exps = [ .. 5 > 2, .. 1 == 1, .. 42 < 50, .. ] >>> all(bool_exps) True >>> objects = ["Hello!", 42, {}] >>> all(objects) False >>> general_exps = [ .. 5 ** 2, .. 42 - 3, .. int("42") .. ] >>> all(general_exps) True >>> empty = [] >>> all(empty) True 3

Jika Anda memeriksa untuk

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 Python, maka Anda akan melihat bahwa fungsinya setara dengan fungsi yang Anda kodekan di bagian sebelumnya. Namun, seperti semua fungsi bawaan,
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 adalah fungsi C dan dioptimalkan untuk kinerja

Guido van Rossum mengusulkan fungsi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 dan
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
0 dalam upaya untuk menghapus
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
1 dan alat fungsional lainnya, seperti
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
2 dan
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
3, dari Python. Namun, komunitas Python tidak senang menghapus alat ini. Meski begitu,
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dan
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
0 ditambahkan sebagai fungsi bawaan di , dengan implementasi oleh Raymond Hettinger

Bisa dikatakan bahwa

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 Python melakukan operasi pengurangan atau pelipatan karena ia mengurangi iterable item menjadi satu objek. Namun, ini bukan fungsi tingkat tinggi karena tidak menggunakan fungsi lain sebagai argumen untuk melakukan perhitungannya. Jadi, Anda dapat menganggap
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 sebagai predikat biasa atau fungsi bernilai Boolean

Anda dapat menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 untuk memeriksa apakah semua item dalam input iterable benar. Karena ini adalah fungsi bawaan, Anda tidak perlu mengimpornya. Begini cara kerjanya

>>> ________0______

Contoh ini menunjukkan bahwa

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 berfungsi sama seperti fungsi kustom Anda,
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
2. Secara internal,
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 mengulang item di input iterable, memeriksa nilai kebenarannya. Jika menemukan item palsu, maka mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0. Jika tidak, ia mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1

Jika Anda memanggil

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dengan iterable kosong, seperti yang Anda lakukan pada contoh terakhir di atas, maka Anda mendapatkan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 karena tidak ada item palsu di iterable kosong. Perhatikan bahwa
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 mengevaluasi item dalam input iterable daripada iterable itu sendiri. Lihat Mengapa
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 Mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 jika Iterable Kosong?

Untuk meringkas perilaku

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3, inilah tabel kebenarannya

ConditionResultAll item dievaluasi sebagai benar.

>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1Semua item dievaluasi sebagai salah.
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0Satu atau lebih item dievaluasi sebagai salah.
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0Masukan iterable kosong.
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
_1

Anda dapat menjalankan panggilan berikut ke

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 untuk mengonfirmasi informasi dalam tabel ini

>>>

>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
_

Contoh-contoh ini menunjukkan bahwa

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 ketika semua item dalam input iterable benar atau ketika iterable kosong. Jika tidak, fungsi mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0

Sama seperti fungsi

>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
2 Anda,
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 juga menerapkan apa yang dikenal sebagai evaluasi hubung singkat. Evaluasi semacam ini berarti bahwa
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 akan kembali segera setelah menentukan hasil akhir operasi

Hubungan arus pendek terjadi ketika fungsi menemukan item palsu di iterable. Dalam hal ini, tidak perlu mengevaluasi item lainnya karena fungsi sudah mengetahui hasil akhirnya. Perhatikan bahwa jenis penerapan ini berarti Anda bisa mendapatkan perilaku yang berbeda saat menguji kondisi dengan efek samping. Perhatikan contoh berikut

>>>

>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
_

Fungsi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
_21 mengambil objek sebagai argumen dan mengembalikan nilai kebenarannya. Selama eksekusi fungsi, efek samping terjadi. fungsi mencetak sesuatu ke layar

Contoh pertama

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
_22 memegang a yang menghasilkan nilai kebenaran setelah dengan malas mengevaluasi setiap item dari input iterable, yaitu
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
23 dalam contoh. Kali ini,
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 hanya mengevaluasi fungsi satu kali karena
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
25 mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0. Efek samping hanya berjalan sekali

Sekarang lihat contoh kedua dari

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
22. Jika Anda membalikkan iterable input, maka
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 mengevaluasi kedua item karena panggilan ke
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
21 dengan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
30 sebagai argumen mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1. Efek samping berjalan dua kali

Perilaku ini dapat menjadi sumber masalah halus, sehingga Anda harus menghindari mengevaluasi kondisi dengan efek samping dalam kode Anda

Terakhir, ketika menggunakan fungsi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3, Anda dapat mengatakan bahwa fungsi tersebut memiliki setidaknya dua kasus penggunaan umum. Anda dapat menggunakan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 untuk memeriksa apakah semua item dalam iterable

  1. Evaluasi menjadi benar
  2. Memiliki properti tertentu atau memenuhi kondisi tertentu

Di bagian berikut, Anda akan mempelajari cara menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dengan berbagai jenis iterable di Python. Setelah itu, Anda akan mempelajari cara menggunakan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dengan pemahaman daftar dan ekspresi generator untuk menyelesaikan kasus penggunaan kedua yang tercantum di atas

Hilangkan iklan

Menggunakan >>> bool_exps = [ .. 5 > 2, .. 1 == 1, .. 42 < 50, .. ] >>> all(bool_exps) True >>> objects = ["Hello!", 42, {}] >>> all(objects) False >>> general_exps = [ .. 5 ** 2, .. 42 - 3, .. int("42") .. ] >>> all(general_exps) True >>> empty = [] >>> all(empty) True _3 Dengan Berbagai Jenis Iterable

Fungsi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 bawaan mencakup gaya pengetikan bebek Python dan menerima jenis argumen yang berbeda asalkan dapat diulang. Anda dapat menggunakan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dengan daftar, tupel, string, kamus, set, dan sejenisnya

Dalam semua kasus,

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 bekerja seperti yang diharapkan, mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 jika semua item benar dan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0 sebaliknya. Di bagian ini, Anda akan membuat kode contoh menggunakan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dengan tipe iterable yang berbeda

Urutan

Hingga saat ini, Anda telah mempelajari cara

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 bekerja dengan daftar Python. Di bagian ini, Anda akan belajar bahwa tidak ada perbedaan nyata antara daftar dan tipe data urutan lainnya, seperti tupel, dan objek
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
44. Semua fungsi yang dibutuhkan adalah agar objek input dapat diubah

Berikut adalah beberapa contoh penggunaan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 dengan tupel dan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
44 objek

>>>

>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
_

Seperti biasa, jika semua item di input iterable benar, maka Anda mendapatkan

>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1. Jika tidak, Anda mendapatkan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0. Tupel dan rentang kosong menghasilkan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 hasil. Dalam contoh terakhir, memanggil
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
50 dengan
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5 sebagai argumen mengembalikan objek kosong
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
44, jadi
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 memberi Anda
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 sebagai hasilnya

Anda juga dapat meneruskan tupel yang berisi ekspresi, ekspresi Boolean, atau objek Python dari jenis apa pun ke

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3. Silahkan dan cobalah

Kamus

Kamus adalah kumpulan pasangan kunci-nilai. Jika Anda mengulang melalui kamus secara langsung, maka Anda akan mengulangi kuncinya secara otomatis. Selain itu, Anda dapat menggunakan metode praktis untuk mengulang kunci, nilai, dan item kamus secara eksplisit

Catatan. Menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 dengan metode kamus
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
57 tidak masuk akal. Metode ini mengembalikan pasangan kunci-nilai sebagai tupel dua item, yang akan selalu bernilai true di Python

Jika Anda mengirimkan kamus langsung ke

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3, maka fungsi akan memeriksa kunci kamus secara otomatis

>>>

>>> all({"gold": 1, "silver": 2, "bronze": 3})
True

>>> all({0: "zero", 1: "one", 2: "two"})
False
_

Karena semua kunci dalam kamus pertama benar, Anda mendapatkan

>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 sebagai hasilnya. Dalam kamus kedua, kunci pertama adalah
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5, yang bernilai salah. Dalam hal ini, Anda mendapatkan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
_0 kembali dari
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3

Jika Anda ingin mendapatkan hasil yang sama seperti pada contoh di atas, tetapi dengan kode yang lebih mudah dibaca dan eksplisit, Anda dapat menggunakan metode yang mengembalikan semua kunci dari kamus yang mendasarinya

>>>

>>> medals = {"gold": 1, "silver": 2, "bronze": 3}
>>> all(medals.keys())
True

>>> numbers = {0: "zero", 1: "one", 2: "two"}
>>> all(numbers.keys())
False
_

Dengan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
_63, Anda memperjelas bahwa kode Anda memanggil
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 untuk menentukan apakah semua kunci saat ini dalam kamus input benar

Persyaratan umum lainnya adalah Anda perlu memeriksa apakah semua nilai dalam kamus tertentu dievaluasi sebagai benar. Dalam hal ini, Anda dapat menggunakan

>>>

>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
_

Dalam contoh ini, pertama-tama Anda memeriksa apakah setidaknya ada satu item dalam inventaris perlengkapan sekolah Anda saat ini. Pada hari Senin, semua item Anda memiliki setidaknya satu unit, jadi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 pengembalian
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1. Namun, pada hari Selasa, panggilan ke
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0 karena Anda kehabisan unit di setidaknya salah satu persediaan Anda,
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
71 dalam hal ini

Hilangkan iklan

Menggunakan >>> bool_exps = [ .. 5 > 2, .. 1 == 1, .. 42 < 50, .. ] >>> all(bool_exps) True >>> objects = ["Hello!", 42, {}] >>> all(objects) False >>> general_exps = [ .. 5 ** 2, .. 42 - 3, .. int("42") .. ] >>> all(general_exps) True >>> empty = [] >>> all(empty) True _3 Dengan Pemahaman dan Ekspresi Generator

Seperti yang Anda pelajari sebelumnya, kasus penggunaan kedua dari

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 Python adalah untuk memeriksa apakah semua item dalam iterable memiliki properti tertentu atau memenuhi kondisi tertentu. Untuk melakukan pemeriksaan semacam ini, Anda dapat menggunakan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dengan pemahaman daftar atau ekspresi generator sebagai argumen, tergantung pada kebutuhan Anda

Sinergi yang Anda dapatkan dengan menggabungkan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dengan pemahaman daftar dan ekspresi generator melepaskan kekuatan penuh dari fungsi ini dan membuatnya sangat berharga dalam pengkodean sehari-hari Anda

Salah satu cara untuk memanfaatkan kekuatan super

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 ini adalah dengan menggunakan fungsi predikat yang menguji properti yang diinginkan. Fungsi predikat ini akan menjadi ekspresi dalam pemahaman daftar yang akan Anda berikan sebagai argumen untuk
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3. Inilah sintaks yang diperlukan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
_0

Pemahaman daftar ini menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
78 untuk menguji setiap
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
79 di
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
80 untuk properti tertentu. Kemudian panggilan ke
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 mengurangi daftar yang dihasilkan menjadi satu nilai
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 atau
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0, yang memberi tahu Anda jika semua item memiliki properti yang
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
78 mendefinisikan dan menguji

Misalnya, kode berikut memeriksa apakah semua nilai dalam suatu urutan adalah bilangan prima

>>>

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
1

Dalam contoh ini, Anda menggabungkan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 dengan pemahaman daftar. Komprehensi menggunakan fungsi predikat
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
86 untuk menguji setiap nilai dalam
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
87 untuk primality. Daftar yang dihasilkan akan berisi nilai Boolean (
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 atau
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0) untuk hasil dari setiap pemeriksaan. Kemudian
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 mendapatkan daftar ini sebagai argumen dan memprosesnya untuk menentukan apakah semua bilangan prima atau tidak

Catatan. Predikat

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
_86 didasarkan pada algoritme dari artikel Wikipedia tentang

Kasus penggunaan kedua dari kombinasi ajaib ini,

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 ditambah pemahaman daftar, adalah untuk memeriksa apakah semua item dalam iterable memenuhi kondisi tertentu. Inilah sintaks yang diperlukan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
_2

Panggilan ke

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 ini menggunakan pemahaman daftar untuk memeriksa apakah semua item di
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
80 memenuhi persyaratan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
95, yang umumnya didefinisikan dalam istilah
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
79 individu. Mengikuti ide ini, berikut adalah beberapa contoh yang memeriksa apakah semua angka dalam daftar lebih besar dari
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5

>>>

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
3

Pada contoh pertama,

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 karena semua angka dalam daftar input memenuhi kondisi lebih besar dari
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5. Pada contoh kedua, hasilnya adalah
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
_0 karena input iterable mencakup
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5 dan angka negatif

Seperti yang sudah Anda ketahui,

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 dengan iterable kosong sebagai argumen. Perilaku ini mungkin tampak aneh dan dapat menyebabkan kesimpulan yang salah

>>>

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
4

Kode ini menunjukkan bahwa semua nilai di

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
_87 kurang dari
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5, tetapi juga sama dengan dan lebih besar dari
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5, yang tidak mungkin. Akar penyebab dari hasil yang tidak logis ini adalah bahwa semua panggilan ini ke
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 mengevaluasi iterables kosong, yang membuat
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1

Untuk mengatasi masalah ini, Anda dapat menggunakan fungsi

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
11 bawaan untuk mendapatkan jumlah item dalam iterable input. Jika
>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
_11 mengembalikan
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5, maka Anda dapat melewati panggilan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 untuk memproses input kosong yang dapat diulang. Strategi ini akan membuat kode Anda tidak terlalu rawan kesalahan

Semua contoh yang telah Anda kodekan di bagian ini menggunakan pemahaman daftar sebagai argumen untuk

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3. Pemahaman daftar membuat daftar lengkap dalam memori, yang bisa menjadi operasi yang sia-sia. Perilaku ini berlaku terutama jika Anda tidak memerlukan daftar yang dihasilkan dalam kode Anda lagi, yang merupakan kasus umum dengan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3

Dalam situasi ini, selalu lebih efisien untuk menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dengan ekspresi generator, terutama jika Anda bekerja dengan daftar masukan yang panjang. Alih-alih membangun seluruh daftar baru di memori, ekspresi generator akan menghasilkan dan menghasilkan item sesuai permintaan, membuat kode Anda lebih efisien

Sintaks untuk membuat ekspresi generator hampir sama dengan yang Anda gunakan untuk pemahaman daftar

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
_5

Satu-satunya perbedaan adalah bahwa ekspresi generator menggunakan tanda kurung (

>>> all({"gold": 1, "silver": 2, "bronze": 3})
True

>>> all({0: "zero", 1: "one", 2: "two"})
False
1) bukan tanda kurung siku (
>>> all({"gold": 1, "silver": 2, "bronze": 3})
True

>>> all({0: "zero", 1: "one", 2: "two"})
False
2). Karena pemanggilan fungsi sudah memerlukan tanda kurung, Anda hanya perlu menghapus tanda kurung siku

Tidak seperti pemahaman daftar, ekspresi generator menghasilkan item sesuai permintaan, membuatnya cukup efisien dalam hal penggunaan memori. Selain itu, Anda tidak akan membuat daftar baru hanya untuk membuangnya setelah

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 kembali

Hilangkan iklan

Membandingkan >>> bool_exps = [ .. 5 > 2, .. 1 == 1, .. 42 < 50, .. ] >>> all(bool_exps) True >>> objects = ["Hello!", 42, {}] >>> all(objects) False >>> general_exps = [ .. 5 ** 2, .. 42 - 3, .. int("42") .. ] >>> all(general_exps) True >>> empty = [] >>> all(empty) True 3 Dengan Operator Boolean >>> bool_exps = [ .. 5 > 2, .. 1 == 1, .. 42 < 50, .. ] >>> all(bool_exps) True >>> objects = ["Hello!", 42, {}] >>> all(objects) False >>> general_exps = [ .. 5 ** 2, .. 42 - 3, .. int("42") .. ] >>> all(general_exps) True >>> empty = [] >>> all(empty) True 9

Secara kasar Anda dapat menganggap

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 sebagai serangkaian item yang terhubung melalui operator Boolean
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
9. Misalnya, pemanggilan fungsi
>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
_25 secara semantik setara dengan ekspresi
>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
26. Namun, ada beberapa perbedaan kecil di antara mereka

Di bagian ini, Anda akan belajar tentang perbedaan tersebut. Yang pertama berkaitan dengan sintaks, dan yang kedua tentang nilai kembalian. Selain itu, Anda akan mengetahui bahwa operator

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 dan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
9 menerapkan evaluasi hubung singkat

Memahami Perbedaan Sintaks

Panggilan ke

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 menggunakan sintaks yang sama dengan panggilan fungsi apa pun di Python. Anda perlu memanggil fungsi dengan sepasang tanda kurung. Dalam kasus khusus
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3, Anda harus memberikan iterable of values ​​sebagai argumen

>>>

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
6

Item dalam iterable input dapat berupa ekspresi umum, ekspresi Boolean, atau objek Python dari jenis apa pun. Selain itu, jumlah item dalam input iterable hanya bergantung pada jumlah memori yang tersedia di sistem Anda

Di sisi lain, operator

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_9 adalah operator biner yang menghubungkan dua operan dalam sebuah ekspresi

>>>

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
7

Operator

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_9 logis mengambil operan kiri dan kanan untuk membuat ekspresi majemuk. Sama seperti dengan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3, operan dalam ekspresi
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
9 dapat berupa ekspresi umum, ekspresi Boolean, atau objek Python. Terakhir, Anda dapat menggunakan beberapa operator
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_9 untuk menghubungkan sejumlah operan

Mengembalikan Nilai Boolean vs Operan

Perbedaan kedua dan yang lebih penting antara

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 dan operator
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
9 adalah nilai pengembalian masing-masing. Sementara
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 selalu mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 atau
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0, operator
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
9 selalu mengembalikan salah satu operannya. Itu hanya mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 atau
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0 jika operan yang dikembalikan secara eksplisit mengevaluasi salah satu nilai

>>> ________25______8

Contoh ini menunjukkan bagaimana

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 selalu mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 atau
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0, yang konsisten dengan status fungsi predikat. Di sisi lain,
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_9 mengembalikan operan yang terakhir dievaluasi. Jika itu adalah operan terakhir dalam sebuah ekspresi, maka semua operan sebelumnya pasti benar. Jika tidak,
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_9 akan mengembalikan operan palsu pertama, menunjukkan di mana evaluasi berhenti

Perhatikan bahwa dalam contoh terakhir, operator

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_9 mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 karena operan yang tersirat adalah ekspresi, yang selalu mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1 atau
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0 secara eksplisit

Ini adalah perbedaan penting antara fungsi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dan operator
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
9. Jadi, Anda harus memperhitungkannya untuk mencegah bug halus dalam kode Anda. Namun, dalam , seperti
>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
_8 pernyataan dan
>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
56 loop, perbedaan ini tidak relevan sama sekali

Mempersingkat Evaluasi

Seperti yang sudah Anda pelajari,

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 menghubungkan evaluasi item dalam input iterable saat menentukan hasil akhir. Operator
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
9 juga mengimplementasikan

Keuntungan dari fitur ini adalah membuat operasi menjadi efisien dengan melewatkan pemeriksaan yang tersisa segera setelah item palsu muncul

Untuk mencoba evaluasi hubung singkat, Anda dapat menggunakan a , seperti pada contoh berikut

>>>

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
9

Loop di dalam

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
59 mengulang item di
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all_true(bool_exps)
True
80, menggunakan fungsi
>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
61 bawaan untuk mendapatkan indeks dari setiap item yang dicentang. Kemudian loop mencetak pesan yang mengidentifikasi item yang dicentang dan menghasilkan item yang ada

Dengan

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
_59, Anda dapat menjalankan kode berikut untuk menguji
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 untuk evaluasi hubung singkat

>>>

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
0

Panggilan pertama ke

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 menunjukkan bagaimana fungsi memeriksa kedua item untuk menentukan hasil akhir. Panggilan kedua mengonfirmasi bahwa
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 hanya memeriksa item pertama. Karena item ini salah, fungsi langsung kembali tanpa mencentang item kedua. Itu sebabnya generator masih menghasilkan item kedua saat Anda menelepon

Sekarang Anda dapat menjalankan pengujian serupa menggunakan operator

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
9

>>>

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
1

Ekspresi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_9 pertama mengevaluasi kedua operan untuk mendapatkan hasil akhir. Ekspresi
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_9 kedua hanya mengevaluasi operan pertama untuk menentukan hasilnya. Panggilan ke
>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
66 dengan
>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
71 sebagai argumen menunjukkan bahwa fungsi generator masih menghasilkan item yang tersisa

Hilangkan iklan

Menempatkan >>> bool_exps = [ .. 5 > 2, .. 1 == 1, .. 42 < 50, .. ] >>> all(bool_exps) True >>> objects = ["Hello!", 42, {}] >>> all(objects) False >>> general_exps = [ .. 5 ** 2, .. 42 - 3, .. int("42") .. ] >>> all(general_exps) True >>> empty = [] >>> all(empty) True _3 Menjadi Tindakan. Contoh Praktis

Sejauh ini, Anda telah mempelajari dasar-dasar

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 Python. Anda telah belajar menggunakannya dengan urutan, kamus, pemahaman daftar, dan ekspresi generator. Selain itu, Anda telah mempelajari tentang perbedaan dan persamaan antara fungsi bawaan ini dan operator
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
9 logis

Di bagian ini, Anda akan membuat kode serangkaian contoh praktis yang akan membantu Anda menilai seberapa berguna

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 saat Anda memprogram dengan Python. Jadi, pantau terus dan nikmati pengkodean Anda

Meningkatkan Keterbacaan Kondisi Senyawa Panjang

Salah satu fitur menarik dari

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 adalah bagaimana fungsi ini dapat meningkatkan keterbacaan kode saat Anda bekerja dengan ekspresi Boolean majemuk panjang berdasarkan operator
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
9

Misalnya, Anda perlu memvalidasi input pengguna dalam sebuah kode. Agar input valid, harus berupa bilangan bulat antara

>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5 dan
>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
79 yang juga merupakan bilangan genap. Untuk memeriksa semua kondisi ini, Anda dapat menggunakan pernyataan
>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
8 berikut

>>>

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
2

Kondisi

>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
8 terdiri dari panggilan yang memeriksa apakah input adalah bilangan bulat, ekspresi yang memeriksa apakah angka tersebut antara
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5 dan
>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
79, dan ekspresi yang memeriksa apakah nilai input adalah bilangan genap

Meskipun kode ini berfungsi, kondisinya cukup panjang sehingga sulit untuk diurai dan dipahami. Selain itu, jika Anda perlu menambahkan lebih banyak pemeriksaan validasi di pembaruan mendatang, kondisinya akan menjadi lebih lama dan lebih rumit. Itu juga membutuhkan beberapa pemformatan kode

Untuk meningkatkan keterbacaan persyaratan ini, Anda dapat menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3, seperti pada kode berikut

>>>

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
3

Dalam contoh ini, semua kondisi validasi hidup dalam sebuah tuple dengan nama deskriptif. Menggunakan teknik ini memiliki keuntungan tambahan. jika Anda perlu menambahkan kondisi validasi baru, maka Anda hanya perlu menambahkan baris baru ke tuple

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
86 Anda. Perhatikan bahwa sekarang pernyataan
>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
_8 Anda memiliki ekspresi yang cukup mudah dibaca, eksplisit, dan ringkas berdasarkan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3

Dalam kehidupan nyata, strategi validasi biasanya memungkinkan Anda untuk menggunakan kembali kode validasi Anda. Misalnya, daripada menentukan kondisi biasa yang mengevaluasi hanya sekali, Anda dapat membuat kode fungsi validasi yang dapat digunakan kembali

>>>

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
4

Dalam contoh ini, Anda memiliki tiga fungsi yang memeriksa tiga kondisi asli Anda dengan cara yang dapat digunakan kembali. Kemudian Anda mendefinisikan ulang tuple kondisi validasi menggunakan fungsi yang baru saja Anda kodekan. Putaran terakhir

>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
_7 menunjukkan bagaimana Anda dapat menggunakan kembali fungsi ini untuk memvalidasi beberapa objek input menggunakan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3

Memvalidasi Iterables dari Nilai Numerik

Kasus penggunaan lain yang menarik dari

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 adalah untuk memeriksa apakah semua nilai numerik dalam iterable berada dalam interval tertentu. Berikut adalah beberapa contoh bagaimana melakukan ini untuk kondisi yang berbeda dan dengan bantuan ekspresi generator

>>>

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
5

Contoh ini menunjukkan bagaimana Anda dapat membuat ekspresi generator untuk memeriksa apakah semua nilai dalam iterable angka berada dalam interval tertentu

Teknik dalam contoh di atas memungkinkan banyak fleksibilitas. Anda dapat men-tweak kondisi dan menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 untuk menjalankan semua jenis pemeriksaan pada target iterable

Hilangkan iklan

Memvalidasi String dan Iterables dari String

Tipe bawaan mengimplementasikan beberapa predikat yang dapat berguna saat Anda perlu memvalidasi iterable string dan karakter individual dalam string yang diberikan

Misalnya, dengan metode tersebut, Anda dapat memeriksa apakah sebuah string adalah angka desimal yang valid, apakah itu karakter alfanumerik, atau apakah itu karakter ASCII yang valid

Berikut adalah beberapa contoh penggunaan metode string dalam kode Anda

>>>

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
6

Masing-masing metode

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
_94 ini memeriksa properti tertentu pada string yang mendasarinya. Anda dapat memanfaatkan ini dan beberapa metode string lainnya untuk memvalidasi item dalam iterable string serta karakter individual dalam string yang diberikan

Menghapus Baris Dengan Kolom Kosong Dari Data Tabular

Saat Anda bekerja dengan data tabular, Anda mungkin menghadapi masalah memiliki bidang kosong. Membersihkan baris yang berisi bidang kosong mungkin merupakan persyaratan bagi Anda. Jika demikian, maka Anda dapat menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dan
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
2 untuk mengekstrak baris yang memiliki data di semua bidangnya

Fungsi

>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
2 bawaan mengambil objek fungsi dan iterable sebagai argumen. Biasanya, Anda akan menggunakan fungsi predikat sebagai argumen pertama untuk
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
2. Panggilan ke
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
_2 menerapkan predikat ke setiap item dalam iterable dan mengembalikan iterator dengan item yang membuat predikat mengembalikan
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1

Anda dapat menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 sebagai predikat dalam panggilan
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
2. Dengan cara ini, Anda dapat memproses daftar daftar, yang berguna saat Anda bekerja dengan data tabular

Sebagai contoh konkret, katakanlah Anda memiliki file CSV dengan data tentang karyawan perusahaan Anda

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
7

Dengan melihat sekilas file ini, Anda akan melihat bahwa beberapa baris berisi kolom kosong. Misalnya, baris pertama tidak memiliki email, dan baris keempat tidak mencantumkan posisi atau peran. Anda perlu membersihkan data dengan menghapus baris yang berisi kolom kosong

Inilah cara Anda dapat memenuhi persyaratan tersebut dengan menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 sebagai predikat dalam panggilan
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
2

>>> ________30______8

Dalam contoh ini, pertama-tama Anda memuat konten file CSV target ke

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
05 dengan menggunakan modul
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
06 dari pustaka standar Python. Panggilan ke fungsi
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_07 menunjukkan bahwa data berisi baris dengan bidang kosong. Kemudian Anda membersihkan data dengan
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
2 dan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3

Catatan. Jika Anda merasa tidak nyaman menggunakan

>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
2, maka Anda dapat menggantinya dengan pemahaman daftar

Lanjutkan dan jalankan baris kode berikut sebagai gantinya

>>>

>>> objects = ["Hello!", 42, {}]
>>> all_true(objects)
False

>>> general_expressions = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all_true(general_expressions)
True

>>> empty = []
>>> all_true(empty)
True
9

Setelah Anda memiliki daftar data bersih, Anda dapat menjalankan

>>> all([True, True, True])
True

>>> all([False, False, False])
False

>>> all([False, True, True])
False

>>> all([])
True
7 loop lagi untuk memeriksa apakah semuanya bekerja dengan baik

Bagaimana fungsi

>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
2 dan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 bekerja sama untuk menjalankan tugas? . Dengan hasil tersebut,
>>> monday_inventory = {"book": 2, "pencil": 5, "eraser": 1}
>>> all(monday_inventory.values())
True

>>> tuesday_inventory = {"book": 2, "pencil": 3, "eraser": 0}
>>> all(tuesday_inventory.values())
False
_2 tidak akan menyertakan baris tersebut di data akhir. Untuk memastikan bahwa teknik ini berhasil, Anda dapat memanggil
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
07 dengan clean data sebagai argumen

Membandingkan Struktur Data Kustom

Sebagai contoh lain tentang cara menggunakan

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3, katakanlah Anda perlu membuat kelas seperti daftar khusus yang memungkinkan Anda untuk memeriksa apakah semua nilainya lebih besar dari nilai tertentu

Untuk membuat kelas khusus ini, Anda dapat membuat subkelas dari modul

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
20 dan kemudian mengganti yang dipanggil. Mengganti metode ini memungkinkan Anda membebani operator yang lebih besar dari (
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
22), memberikan perilaku khusus untuknya

>>>

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
0

Di

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
21, Anda menggunakan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 untuk memeriksa apakah semua angka dalam daftar saat ini lebih besar dari nilai
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
25 tertentu yang harus berasal dari pengguna

Ekspresi perbandingan di akhir cuplikan kode ini menunjukkan cara menggunakan daftar kustom Anda dan bagaimana perilakunya dengan operator yang lebih besar dari (

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
22). Pada ekspresi pertama, semua nilai dalam daftar lebih besar dari
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5, sehingga hasilnya adalah
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
1. Pada ekspresi kedua, semua angka kurang dari
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
29, yang menghasilkan hasil
>>> def is_true(value):
..     print("Side effect!")
..     return bool(value)
...

>>> values = [0, 1]

>>> conditions = (is_true(n) for n in values)
>>> all(conditions)
Side effect!
False

>>> conditions = (is_true(n) for n in reversed(values))
>>> all(conditions)
Side effect!
Side effect!
False
0

Hilangkan iklan

Sebagian Meniru Fungsi >>> bool_exps = [ .. 5 > 2, .. 1 == 1, .. 42 < 50, .. ] >>> all(bool_exps) True >>> objects = ["Hello!", 42, {}] >>> all(objects) False >>> general_exps = [ .. 5 ** 2, .. 42 - 3, .. int("42") .. ] >>> all(general_exps) True >>> empty = [] >>> all(empty) True 31 Python

Fungsi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_31 bawaan Python berguna untuk mengulang beberapa iterables secara paralel. Fungsi ini mengambil sejumlah iterables (N) tertentu sebagai argumen dan menggabungkan elemen dari masing-masingnya ke dalam N-item tupel. Dalam contoh ini, Anda akan mempelajari cara menggunakan
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 untuk menyimulasikan sebagian fungsi ini

Untuk lebih memahami tantangannya, lihat dasar-dasar apa yang

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
31 lakukan

>>>

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
1

Dalam contoh ini, Anda meneruskan dua daftar sebagai argumen ke

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
31. Fungsi mengembalikan iterator yang menghasilkan tuple dari dua item masing-masing, yang dapat Anda konfirmasikan dengan memanggil
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
36 dengan iterator yang dihasilkan sebagai argumen

Inilah fungsi yang mensimulasikan fungsi ini

>>>

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
2

Fungsi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_37 Anda dapat terdiri dari objek yang dapat diubah. Baris pertama di dalam fungsi menggunakan pemahaman daftar untuk mengonversi setiap input iterable menjadi daftar Python sehingga nanti Anda dapat menggunakan metode
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
38. Kondisi loop bergantung pada
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_3 untuk memeriksa apakah semua daftar input berisi setidaknya satu item

Di setiap iterasi, pernyataan mengembalikan tuple yang berisi satu item dari setiap daftar input. Panggilan ke

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
_38 dengan
>>> # With tuples
>>> all((1, 2, 3))
True
>>> all((0, 1, 2, 3))
False
>>> all(())
True
>>> all(tuple())
True

>>> # With range objects
>>> all(range(10))
False
>>> all(range(1, 11))
True
>>> all(range(0))
True
5 sebagai argumen mengambil dan menghapus item pertama dari setiap daftar

Setelah loop berulang cukup banyak sehingga

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
38 menghapus semua item dari salah satu daftar, kondisi menjadi salah, dan fungsi berakhir. Loop berakhir ketika iterable terpendek habis, memotong iterable yang lebih panjang. Perilaku ini konsisten dengan perilaku default
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
31

Perhatikan bahwa fungsi Anda hanya mengemulasi sebagian fungsi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
31 bawaan karena fungsi Anda tidak menggunakan argumen
>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
46. Argumen ini ditambahkan dalam Python 3. 10 sebagai cara penanganan yang aman

Kesimpulan

Sekarang Anda tahu cara memeriksa apakah semua item dalam iterable yang ada benar dengan menggunakan fungsi

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 bawaan Python. Anda juga tahu cara menggunakan fungsi ini untuk mengetahui apakah item dalam iterable memenuhi kondisi tertentu atau memiliki properti tertentu

Dengan pengetahuan ini, Anda sekarang dapat menulis kode Python yang lebih mudah dibaca dan efisien

Dalam tutorial ini, Anda belajar

  • Cara menggunakan
    >>> bool_exps = [
    ..     5 > 2,
    ..     1 == 1,
    ..     42 < 50,
    .. ]
    >>> all(bool_exps)
    True
    
    >>> objects = ["Hello!", 42, {}]
    >>> all(objects)
    False
    
    >>> general_exps = [
    ..     5 ** 2,
    ..     42 - 3,
    ..     int("42")
    .. ]
    >>> all(general_exps)
    True
    
    >>> empty = []
    >>> all(empty)
    True
    
    _3 Python untuk memeriksa apakah semua item dalam iterable benar
  • Bagaimana
    >>> bool_exps = [
    ..     5 > 2,
    ..     1 == 1,
    ..     42 < 50,
    .. ]
    >>> all(bool_exps)
    True
    
    >>> objects = ["Hello!", 42, {}]
    >>> all(objects)
    False
    
    >>> general_exps = [
    ..     5 ** 2,
    ..     42 - 3,
    ..     int("42")
    .. ]
    >>> all(general_exps)
    True
    
    >>> empty = []
    >>> all(empty)
    True
    
    _3 bekerja dengan berbagai jenis iterable
  • Cara menggabungkan
    >>> bool_exps = [
    ..     5 > 2,
    ..     1 == 1,
    ..     42 < 50,
    .. ]
    >>> all(bool_exps)
    True
    
    >>> objects = ["Hello!", 42, {}]
    >>> all(objects)
    False
    
    >>> general_exps = [
    ..     5 ** 2,
    ..     42 - 3,
    ..     int("42")
    .. ]
    >>> all(general_exps)
    True
    
    >>> empty = []
    >>> all(empty)
    True
    
    _3 dengan pemahaman dan ekspresi generator
  • Apa yang membuat
    >>> bool_exps = [
    ..     5 > 2,
    ..     1 == 1,
    ..     42 < 50,
    .. ]
    >>> all(bool_exps)
    True
    
    >>> objects = ["Hello!", 42, {}]
    >>> all(objects)
    False
    
    >>> general_exps = [
    ..     5 ** 2,
    ..     42 - 3,
    ..     int("42")
    .. ]
    >>> all(general_exps)
    True
    
    >>> empty = []
    >>> all(empty)
    True
    
    3 berbeda dari dan mirip dengan operator
    >>> bool_exps = [
    ..     5 > 2,
    ..     1 == 1,
    ..     42 < 50,
    .. ]
    >>> all(bool_exps)
    True
    
    >>> objects = ["Hello!", 42, {}]
    >>> all(objects)
    False
    
    >>> general_exps = [
    ..     5 ** 2,
    ..     42 - 3,
    ..     int("42")
    .. ]
    >>> all(general_exps)
    True
    
    >>> empty = []
    >>> all(empty)
    True
    
    9

Selain itu, Anda membuat kode beberapa contoh praktis yang membantu Anda memahami seberapa kuat

>>> bool_exps = [
..     5 > 2,
..     1 == 1,
..     42 < 50,
.. ]
>>> all(bool_exps)
True

>>> objects = ["Hello!", 42, {}]
>>> all(objects)
False

>>> general_exps = [
..     5 ** 2,
..     42 - 3,
..     int("42")
.. ]
>>> all(general_exps)
True

>>> empty = []
>>> all(empty)
True
3 dan beberapa kasus penggunaannya yang paling umum dalam pemrograman Python.

Unduhan PDF gratis. Lembar Curang Python 3

Tandai sebagai Selesai

🐍 Trik Python 💌

Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python

Python periksa semua elemen dalam daftar benar

Kirimi Saya Trik Python »

Tentang Leodanis Pozo Ramos

Python periksa semua elemen dalam daftar benar
Python periksa semua elemen dalam daftar benar

Leodanis adalah seorang insinyur industri yang menyukai Python dan pengembangan perangkat lunak. Dia adalah pengembang Python otodidak dengan pengalaman lebih dari 6 tahun. Dia adalah seorang penulis teknis yang rajin dengan semakin banyak artikel yang diterbitkan di Real Python dan situs lainnya

» Lebih lanjut tentang Leodanis


Setiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah

Python periksa semua elemen dalam daftar benar

Aldren

Python periksa semua elemen dalam daftar benar

Bartosz

Python periksa semua elemen dalam daftar benar

Geir Arne

Python periksa semua elemen dalam daftar benar

Kate

Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata

Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista

Tingkatkan Keterampilan Python Anda »

Guru Keterampilan Python Dunia Nyata
Dengan Akses Tak Terbatas ke Real Python

Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista

Tingkatkan Keterampilan Python Anda »

Bagaimana menurut anda?

Nilai artikel ini

Tweet Bagikan Bagikan Email

Apa takeaway # 1 Anda atau hal favorit yang Anda pelajari?

Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami

Bagaimana Anda memeriksa semua elemen dalam daftar Python?

Menggunakan Semua() . Ini mirip dengan apa yang telah kita lakukan pada pendekatan pertama tetapi alih-alih for loop, kita menggunakan metode all().

Bagaimana Anda memeriksa apakah semua dalam daftar itu benar?

Gunakan fungsi all() untuk memeriksa apakah semua elemen dalam daftar adalah True , e. g. jika semua (item True untuk item di my_list). . Fungsi all() akan mengembalikan True jika semua nilai dalam daftar sama dengan True dan False sebaliknya.

Bagaimana cara memeriksa apakah semua nilai dalam daftar sama dengan nilai Python?

Di bawah ini adalah program sederhana. listChar = ['z','z','z','z'] nTemp = listChar[0] bEqual = True untuk item di listChar. jika nTemp. = barang. bEqual = Salah istirahat; . print "Semua elemen dalam daftar adalah sama. " kalau tidak. print "Semua elemen dalam daftar tidak sama. "

Bagaimana Anda memeriksa apakah semua elemen daftar ada dalam string Python?

Cukup gunakan all() dan periksa jenisnya dengan isinstance() . @TekhenyGhemor - isinstance(item, str) dan bukan item. lstrip('-').