Hot deal hosting vps vietnix tháng 2Hot deal hosting vps vietnix tháng 2
PHP
Python

Trang chủ

Tìm hiểu về toán tử membership trong Python

Ngôn ngữ Python là một ngôn ngữ lập trình đa mục đích, nổi tiếng với cú pháp dễ đọc, dễ học và tính ứng dụng cao. Trong lĩnh vực phát triển web, Python thường được sử dụng thông qua các framework như Django và Flask để xây dựng các ứng dụng web mạnh mẽ, bảo mật và dễ mở rộng. Trong chuyên mục này, Vietnix không chỉ cung cấp kiến thức nền tảng về ngôn ngữ Python mà còn hướng dẫn chi tiết cách xây dựng các ứng dụng web thực tế, sử dụng các framework phổ biến và áp dụng các kỹ thuật tiên tiến. Vietnix cam kết liên tục cập nhật những bài viết mới nhất về các tính năng mới của Python, các thư viện hỗ trợ hữu ích và những phương pháp tốt nhất, giúp bạn khai thác tối đa sức mạnh của Python và hoàn thiện kỹ năng lập trình web của mình.
html
CSS
javascript
sql
python
php
c
c++
bootstrap
react
mysql
reactjs
vuejs
Javascript Tutorials
06/02/2025
10 phút đọc
Theo dõi Vietnix trên

Tìm hiểu về toán tử membership trong Python

Chắc hẳn khi lập trình với Python, bạn đã từng nghe qua về toán tử membership. Đây là một công cụ mạnh mẽ giúp kiểm tra sự tồn tại của một phần tử trong một chuỗi dữ liệu. Tuy nhiên, toán tử membership thực chất hoạt động như thế nào, cú pháp ra sao và có những loại nào? Bài viết này sẽ giới thiệu sơ lược về toán tử membership trong Python.

Các điểm chính

Khi đọc xong bài viết, bạn sẽ:

  • Hiểu rõ khái niệm toán tử membership trong Python: Nắm vững định nghĩa và vai trò của toán tử này trong việc kiểm tra sự tồn tại của một phần tử trong một chuỗi.
  • Phân biệt và sử dụng thành thạo 2 loại toán tử in và not in: Biết cách sử dụng in để kiểm tra sự tồn tại và not in để kiểm tra sự vắng mặt của một giá trị trong chuỗi.
  • Áp dụng toán tử membership cho list, tuple, set và dictionary: Thực hành sử dụng toán tử in và not in với các kiểu dữ liệu phổ biến trong Python.
  • Giải quyết các bài toán thực tế bằng toán tử membership: Nắm vững kiến thức để viết các đoạn code ngắn gọn và hiệu quả để kiểm tra điều kiện tồn tại.
  • Có nền tảng vững chắc để học sâu hơn về Python: Hiểu rõ về toán tử membership sẽ giúp bạn dễ dàng tiếp cận các khái niệm phức tạp hơn trong lập trình Python.

Toán tử membership trong Python là gì?

Toán tử membership trong Python giúp xác định xem một phần tử có nằm trong một đối tượng kiểu container (chứa nhiều phần tử bên trong) hay không. Ví dụ, một danh sách (list), một tuple, hay một chuỗi (string) đều là những container.

Toán tử membership trong Python giúp xác định một phần tử có nằm trong đối tượng kiểu container hay không
Toán tử membership trong Python giúp xác định một phần tử có nằm trong đối tượng kiểu container hay không

2 Loại toán tử membership trong Python

Python có hai toán tử membership chính là innot in. Cả 2 đều trả về giá trị kiểu Boolean. Kết quả của toán tử in sẽ ngược lại với kết quả của toán tử not in.

Toán tử in

Toán tử in được dùng để kiểm tra xem:

  • Một chuỗi con (substring) có nằm trong một chuỗi lớn hơn hay không.
  • Một phần tử bất kỳ có nằm trong một list hoặc tuple hay không.
  • Một danh sách con (sub-list) hoặc tuple con (sub-tuple) có nằm trong một danh sách hoặc tuple lớn hơn hay không.

Giả sử bạn có một danh sách các món ăn yêu thích, và bạn muốn kiểm tra xem một món ăn cụ thể có nằm trong danh sách đó hay không.

danh_sach_mon_an_yeu_thich = ["pho", "bun cha", "banh mi", "com tam"]

print ("pho" in danh_sach_mon_an_yeu_thich)    # Kết quả: True
print ("pizza" in danh_sach_mon_an_yeu_thich)  # Kết quả: False

Giải thích ví dụ:

  • danh_sach_mon_an_yeu_thich: là một danh sách chứa các chuỗi, mỗi chuỗi là tên một món ăn.
  • "pho" in danh_sach_mon_an_yeu_thich: Kiểm tra xem chuỗi "pho" có nằm trong danh sách danh_sach_mon_an_yeu_thich hay không. Vì "pho" có trong danh sách, biểu thức này trả về True.
  • "pizza" in danh_sach_mon_an_yeu_thich: Kiểm tra xem chuỗi "pizza" có nằm trong danh sách hay không. Vì "pizza" không có trong danh sách, biểu thức này trả về False.

Toán tử not in 

Toán tử not in được dùng để kiểm tra xem một giá trị có không xuất hiện trong một chuỗi, list, tuple hoặc các đối tượng tương tự hay không.

Để dễ hình dung, chúng ta hãy xem một ví dụ thực tế. Giả sử, bạn có một danh sách các loại trái cây:

danh_sach_trai_cay = ["xoai", "chuoi", "cam", "tao"]

# Kiểm tra xem "man" có KHÔNG nằm trong danh sách trái cây hay không
print("man", "not in", danh_sach_trai_cay, ":", "man" not in danh_sach_trai_cay)

# Kiểm tra xem "tao" có KHÔNG nằm trong danh sách trái cây hay không
print("tao", "not in", danh_sach_trai_cay, ":", "tao" not in danh_sach_trai_cay)

Khi chạy đoạn code trên, kết quả sẽ là:

man not in [‘xoai’, ‘chuoi’, ‘cam’, ‘tao’] : True

tao not in [‘xoai’, ‘chuoi’, ‘cam’, ‘tao’] : False

Giải thích kết quả:

  • "man" not in ['xoai', 'chuoi', 'cam', 'tao'] : True: Kết quả là True vì “man” (mận) không có trong danh sách trái cây.
  • "tao" not in ['xoai', 'chuoi', 'cam', 'tao'] : False: Kết quả là False vì “tao” (táo) có trong danh sách trái cây.

Toán tử membership với list and tuple

Bạn có thể sử dụng toán tử innot in để kiểm tra xem một phần tử có tồn tại trong một list hoặc tuple hay không.

Ví dụ 1

ds_so = [10, 20, 30, 40]
a = 20
b = 10
c = a - b  # c = 10
d = a / 2  # d = 10.0
print (a, "có trong", ds_so, ":", a in ds_so)
print (b, "không có trong", ds_so, ":", b not in ds_so)
print (c, "có trong", ds_so, ":", c in ds_so)
print (d, "không có trong", ds_so, ":", d not in ds_so)

Đoạn code trên sẽ tạo ra kết quả sau:

20 có trong [10, 20, 30, 40] : True

10 không có trong [10, 20, 30, 40] : False

10 có trong [10, 20, 30, 40] : True

10.0 không có trong [10, 20, 30, 40] : False

Điểm đáng chú ý:

  • Trong trường hợp cuối cùng (d not in ds_so), mặc dù d có giá trị là 10.0 (một số thực), 10.0 vẫn được so sánh với 10 (một số nguyên) trong danh sách.
  • Python phân biệt giữa số nguyên (int) và số thực (float).
  • Toán tử membership sẽ trả về True nếu một số được biểu diễn dưới các dạng khác như nhị phân, bát phân, hoặc thập lục phân vẫn nằm trong chuỗi.

Ví dụ:

>>> 0x14 in [10, 20, 30, 40] # 0x14 là biểu diễn thập lục phân của 20
True

Ví dụ 2

Tuy nhiên, nếu bạn cố gắng kiểm tra xem hai số liên tiếp có xuất hiện cùng nhau trong một list hoặc tuple hay không, toán tử in sẽ trả về False, trừ khi chính list/tuple đó chứa một tuple con gồm hai số đó theo đúng thứ tự.

var = (10, 20, 30, 40)
a = 10
b = 20
print ((a, b), "có trong", var, ":", (a, b) in var)

var = ((10, 20), 30, 40)
a = 10
b = 20
print ((a, b), "có trong", var, ":", (a, b) in var)

Kết quả:

(10, 20) có trong (10, 20, 30, 40) : False

(10, 20) có trong ((10, 20), 30, 40) : True

Giải thích ví dụ:

  • Trong trường hợp đầu tiên, (a, b) là một tuple chứa hai giá trị 1020. Toán tử in kiểm tra xem tuple (10, 20) có phải là một phần tử của tuple var hay không. Vì var chỉ chứa các số riêng lẻ (10, 20, 30, 40), không chứa tuple (10, 20), kết quả là False.
  • Trong trường hợp thứ hai, var chứa một tuple con là (10, 20). Do đó, khi kiểm tra (a, b) in var, kết quả là True(10, 20) thực sự là một phần tử của var.

Toán tử membership với set

Các toán tử membership trong Python không chỉ hoạt động tốt với kiểu dữ liệu list và tuple, mà còn rất hiệu quả khi sử dụng với kiểu dữ liệu set.

Để kiểm tra một phần tử có tồn tại trong một set hay không, ta có thể sử dụng toán tử in. Dưới đây là một ví dụ cụ thể:

# Khởi tạo một set các số nguyên
tap_hop_so = {10, 20, 30, 40}

# Kiểm tra xem số 20 có nằm trong tập hợp hay không
a = 10
b = 20
print(b, "có trong", tap_hop_so, ":", b in tap_hop_so)

# Ví dụ với set chứa tuple
tap_hop_tuple = {(10, 20), 30, 40}
a = 10
b = 20
print((a, b), "có trong", tap_hop_tuple, ":", (a, b) in tap_hop_tuple)

Đoạn code trên sẽ cho ra kết quả sau:

20 có trong {40, 10, 20, 30} : True

(10, 20) có trong {40, 30, (10, 20)} : True

Toán tử membership với dictionary

Trong Python, toán tử in cũng như not in có thể được sử dụng với đối tượng dictionary (từ điển). Tuy nhiên, Python chỉ kiểm tra xem một giá trị có tồn tại trong tập hợp các key của dictionary hay không, chứ không kiểm tra các value.

Để dễ hình dung hơn, bạn xem qua ví dụ sau đây:

thong_tin_sinh_vien = {
    "ma_so": "SV001",
    "ten": "Nguyễn Văn A",
    "tuoi": 20,
    "khoa": "Công nghệ thông tin"
}

ma_so_can_kiem_tra = "ma_so"
ten_can_kiem_tra = "Nguyễn Văn A"

print(ma_so_can_kiem_tra, "in", thong_tin_sinh_vien, ":", ma_so_can_kiem_tra in thong_tin_sinh_vien)
print(ten_can_kiem_tra, "in", thong_tin_sinh_vien, ":", ten_can_kiem_tra in thong_tin_sinh_vien)

Đoạn code trên sẽ cho ra kết quả:

ma_so in {‘ma_so’: ‘SV001’, ‘ten’: ‘Nguyễn Văn A’, ‘tuoi’: 20, ‘khoa’: ‘Công nghệ thông tin’} : True

Nguyễn Văn A in {‘ma_so’: ‘SV001’, ‘ten’: ‘Nguyễn Văn A’, ‘tuoi’: 20, ‘khoa’: ‘Công nghệ thông tin’} : False

Giải thích code:

  • Dictionary thong_tin_sinh_vien: Lưu trữ thông tin của một sinh viên, với các key như "ma_so", "ten", "tuoi", "khoa" và các value tương ứng.
  • Ở dòng print đầu tiên: Chương trình kiểm tra xem chuỗi "ma_so" có phải là một key trong dictionary thong_tin_sinh_vien hay không. Vì "ma_so" là một key hợp lệ, kết quả trả về là True.
  • Ở dòng print thứ hai: Chương trình kiểm tra xem chuỗi "Nguyễn Văn A" có phải là một key trong thong_tin_sinh_vien hay không. Mặc dù "Nguyễn Văn A" là một value trong dictionary (giá trị tương ứng với key "ten"), "Nguyễn Văn A" không phải là một key. Do đó, kết quả trả về là False.

Lời kết

Vậy là chúng ta vừa cùng nhau khám phá chi tiết về toán tử membership trong Python. Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về toán tử innot in, cũng như cách ứng dụng chúng với các kiểu dữ liệu khác nhau như list, tuple, set và dictionary. Mong rằng những kiến thức này sẽ giúp bạn viết code Python hiệu quả và dễ dàng hơn.

Mọi người cũng đọc

Cao Lê Viết Tiến

PHP Leader
tại
Vietnix

Kết nối với mình qua

Icon Quote
Icon Quote

Học lập trình online cùng vietnix

Học lập trình online cùng Vietnix

PHPXem thêmThu gọn