HomeLập trìnhPythonHàm any() và...

Hàm any() và all() của Python – Được giải thích bằng các ví dụ


Khi viết mã bằng Python, bạn đã bao giờ phải kiểm tra xem không tí nào mục hoặc tất cả các các mục trong một iterable đánh giá để True? Lần tới khi bạn cần làm như vậy, hãy đảm bảo sử dụng các chức năng tiện lợi any()all().

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Python any()all() chức năng và sử dụng các ví dụ đơn giản để hiểu cách chúng hoạt động.

Kiểu dữ liệu Boolean trong Python

Trước khi chúng ta nhảy vào any()all(), hãy nhanh chóng xem lại kiểu dữ liệu Boolean trong Python. Bạn có thể gọi bool() trên bất kỳ đối tượng Python nào để lấy giá trị thực của nó. Bạn có thể chạy các ví dụ mã bên dưới trong IDE yêu thích của mình.

# truth value of None is False
print(bool(None))
# Output
False

# truth value of an empty string ("") is False
print(bool(""))
# Output
False

# truth value of an empty list (or any iterable) is False
print(bool([]))
# Output
False

# truth value of 0 {int (0), float (0.0) and complex (0j)} is False
print(bool(0))
# Output
False

Như được hiển thị trong đoạn mã trên,

  • None có giá trị chân lý là False,
  • Số không () – biểu diễn số nguyên, dấu phẩy động và số phức của – đều có giá trị chân lý là False
  • Tất cả các lần lặp trống như danh sách, bộ dữ liệu và chuỗi có giá trị thực là False.

Điều đó nói rằng, khá trực quan rằng tất cả khác không các giá trị và không trống iterables có giá trị thật là True.

Cách sử dụng hàm any() trong Python

Hãy hiểu cú pháp của any() chức năng, hãy xem một số ví dụ đơn giản và sau đó chuyển sang các ví dụ hữu ích hơn.

👉 Cú pháp: any(iterable)

  • trả lại True nếu bool(x)True bất cứ gì x trong iterable.
  • trả lại False nếu iterable trống.
Đọc thêm  Nhận dạng giọng nói trong Python

Do đó, các any() hàm lấy một iterable làm đối số và trả về True miễn là ít nhất một trong các mục trong iterable là True.

Dưới đây là một vài ví dụ đơn giản để xác minh cách any() chức năng hoạt động:

list_1 = [0,0,0,1,0,0,0,0]
# any(a list with at least one non-zero entry) returns True
print(any(list_1))
# Output
True

list_2 = [0j,0,0,0.0,0,0,0.0,0]
# any(a list of zeros) returns False
print(any(list_2))
# Output
False

list_3 = [True, False, False]
# any(a list with at least one True value) returns True
print(any(list_3))
# Output
True

list_4 = ["","","code more"]
# any(a list with at least one non-empty string) returns True
print(any(list_4))
# Output
True

list_5 = ["","",""]
# any(a list of empty strings) returns False
print(any(list_5))
# Output
False

Cách sử dụng Hàm any() của Python để kiểm tra các chữ số trong một chuỗi

Bây giờ chúng ta hãy sử dụng any() Chức năng kiểm tra xem có không tí nào chữ số trong một chuỗi. Hãy viết ra các bước.

  • Để kiểm tra: Có bất kỳ chữ số nào trong chuỗi không?
  • Lặp qua chuỗi để truy cập từng ký tự trong chuỗi.
  • Kiểm tra xem mỗi ký tự có phải là một chữ số hay không bằng cách gọi isdigit() phương pháp trên đó.
  • isdigit() lợi nhuận True nếu ký tự được kiểm tra là một chữ số, nếu không thì nó sẽ trả về False.

Khả năng hiểu danh sách có thể rất hữu ích trong việc thu thập tất cả các giá trị thực này trong một danh sách. Đây là một bản tóm tắt nhanh chóng:

 # List Comprehension

 [output_expression for every_item in an_iterable]
     |
     |
     V
    result of doing something on each item in the iterable
    
 # In essence, Loop through the iterable, do something on each item and
 return the result of the operation.
 

Như được hiển thị trong đoạn mã bên dưới, chuỗi ví dụ của chúng tôi coding**is**cool**345 chứa chữ số.

Vì vậy, gọi any() chức năng trên chuỗi sẽ trả về True. Chúng tôi sử dụng hiểu danh sách để có được một danh sách TrueFalse các giá trị tùy thuộc vào việc ký tự có phải là chữ số hay không.

my_string = "coding**is**cool**345"
are_there_digits = [char.isdigit() for char in my_string]
print(any(are_there_digits))

# Output
True

Nhận thấy như thế nào are_there_digits là một danh sách có nhiều mục bằng độ dài của chuỗi.

Đối với mỗi ký tự trong chuỗi, có một giá trị thực tương ứng – True nếu ký tự là một chữ số, và False nếu ký tự không phải là chữ số, như hình bên dưới.

print(are_there_digits)

# Output
[False, False, False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, True, True, True]

Cách sử dụng hàm any() của Python để kiểm tra các chữ cái trong chuỗi

Hãy lấy một ví dụ tương tự khác. Lần này, hãy kiểm tra sự xuất hiện của các chữ cái trong một chuỗi.

Đọc thêm  Cách tạo, đọc, cập nhật và tìm kiếm thông qua các tệp Excel bằng Python

Chuỗi được kiểm tra là ***456278))) không chứa các chữ cái – đang gọi any() lợi nhuận False như mong đợi. Đối với mỗi ký tự trong chuỗi, hãy gọi isalpha() phương pháp để kiểm tra xem đó có phải là một chữ cái hay không.

my_string = "***456278)))"
num = [char.isalpha() for char in my_string]
print(any(num))

# Output
False

Các is_letter là một danh sách False các giá trị, như được xác minh bên dưới:

print(is_letter)

# Output
[False, False, False, False, False, False, False, False, False, False, False, False]

Cách sử dụng hàm any() của Python để kết hợp nhiều điều kiện với logic OR

Giả sử bạn quyết định làm việc hiệu quả hơn và viết ra danh sách dưới đây. Tuy nhiên, bạn chọn không làm khó bản thân và quyết định rằng bạn có thể có nhiều đồ ngọt miễn là một trong những món trong danh sách xảy ra!😀

không tí nào

Lưu ý cách chúng tôi có nhiều điều kiện để xem xét, nhưng chọn có đồ ngọt ngay cả khi một trong số chúng được đánh giá là True.

Đây không phải là rất giống với một if câu lệnh trong đó bạn cần kiểm tra xem có nhiều điều kiện được xâu chuỗi bởi logic không or nhà điều hành đánh giá để True? Vâng, nó là và any() chức năng có thể thực sự hữu ích khi làm điều đó.

Giả sử bạn có N điều kiện c1, c2, c3…, cN. Hãy xem xét mã giả dưới đây:

if c1 or c2 or ... c_(N-1) or CN:
	# DO THIS

else:
	# DO THIS

Giờ đây, bạn có thể thu thập tất cả các điều kiện này trong một danh sách hoặc bộ lặp có thể lặp lại, sau đó gọi any() trên iterable đó để kiểm tra xem một hoặc nhiều điều kiện có True, như hình bên dưới. Điều này không đơn giản sao? 😀

conditions = [c1,c2,..., c_N]

if any(conditions):
	# DO THIS
else:
	# DO THIS

Cách sử dụng hàm all() trong Python

Hãy bắt đầu với cú pháp của all() chức năng.

👉 cú pháp: all(iterable)

  • trả lại True nếu bool(x)True cho tất cả các giá trị x trong iterable.
  • trả lại True nếu iterable trống.

Các all() hàm lấy một iterable làm đối số, trả về True chỉ khi tất cả các mục trong iterable đánh giá là True hoặc nếu iterable trống. Trong tất cả các trường hợp khác, các all() hàm trả về False.

Cách sử dụng hàm all() của Python để kiểm tra các chữ cái trong chuỗi

Hãy lấy các ví dụ tương tự để kiểm tra một số đặc điểm của chuỗi.

Đọc thêm  Cách xây dựng API JSON bằng Python

chuỗi thử nghiệm coding**is**cool chứa ký tự đặc biệt * ngoài các chữ cái. Vì vậy, khi chúng tôi kiểm tra xem tất cả các ký tự trong chuỗi có phải là chữ cái hay không bằng cách sử dụng all() chức năng, chúng ta sẽ nhận được False.

my_string = "coding**is**cool"
are_all_letters = [char.isalpha() for char in my_string]
print(all(are_all_letters))
# Output
False

print(are_all_letters)
# Output
[True, True, True, True, True, True, False, False, True, True, False, False,
True, True, True, True]

Lưu ý cách danh sách are_all_lettersFalse giá trị tại tất cả các vị trí mà * có mặt trong chuỗi của chúng tôi.

Cách sử dụng Hàm all() của Python để kiểm tra các chữ số trong chuỗi

Bây giờ hãy kiểm tra xem tất cả các ký tự trong chuỗi có phải là chữ số hay không bằng cách sử dụng all() chức năng. chuỗi thử nghiệm 56456278 chỉ chứa các chữ số, vì vậy, gọi all() nên trở lại True khi hiểu danh sách cho chúng ta một danh sách True các giá trị.

my_string = "56456278"
are_all_digits = [char.isdigit() for char in my_string]
print(all(are_all_digits))
# Output
True

print(are_all_digits)
# Output
[True, True, True, True, True, True, True, True]

Cách sử dụng hàm all() của Python để kết hợp nhiều điều kiện với logic AND

Hãy xem xét ví dụ sau. Lần này, bạn đang tranh giành một chiếc iPad và các điều kiện nghiêm ngặt hơn. Bạn phải hoàn thành tất cả các các nhiệm vụ trong danh sách để lấy iPad từ anh họ của bạn.😀

tất cả các

Bây giờ, điều này rất giống với việc sử dụng một if câu lệnh để kiểm tra xem nhiều điều kiện được xâu chuỗi bởi logic and nhà điều hành đánh giá để Truenhư hình dưới đây:

if c1 and c2 and ... c_(N-1) and CN:
	# DO THIS

else:
	# DO THIS

Bạn có thể sử dụng all() để làm cho điều này ngắn gọn hơn bằng cách thu thập các điều kiện trong một lần lặp, sau đó gọi hàm all() chức năng trên iterable.

conditions = [c1,c2,..., c_N]

if all(conditions):
	# DO THIS
else:
	# DO THIS

Phần kết luận

Tôi hy vọng hướng dẫn này đã giúp bạn hiểu được any()all() chức năng trong Python.

Hẹn gặp lại tất cả các bạn sớm trong một bài viết khác. Cho đến lúc đó, học tập vui vẻ!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status