/Hàm pop – Kiểu dữ liệu Dictionary

Hàm pop – Kiểu dữ liệu Dictionary

Hàm pop hay phương thức pop là một trong số các hàm được hỗ trợ sẵn của Kiểu dữ liệu Dictionary trong ngôn ngữ lập trình Python được sử dụng để loại bỏ một cặp khóa-giá trị từ từ điển và trả về giá trị tương ứng với khóa đó.

Nếu khóa không tồn tại, nó sẽ ném một ngoại lệ (exception) hoặc trả về giá trị mặc định được chỉ định.

1. Cú pháp hàm pop

Hàm pop hay Python Dictionary pop là một phương thức của đối tượng từ điển (dictionary) trong ngôn ngữ lập trình Python.

Điều này có nghĩa là nó được gọi trên một đối tượng từ điển cụ thể để loại bỏ và trả về giá trị tương ứng với một khóa (key) cụ thể. Đây không phải là một phương thức của lớp (class).

Cú pháp:

  • dictObj.pop(key[, default])

Tham số:

  • key: Khóa mà chúng ta muốn loại bỏ và lấy giá trị tương ứng.
  • default (tùy chọn): Giá trị mặc định được trả về nếu khóa không tồn tại. Nếu không được chỉ định và khóa không tồn tại, hàm sẽ ném một ngoại lệ KeyError.

Kiểu dữ liệu trả về:

  • Hàm pop trả về giá trị tương ứng với khóa đã loại bỏ.

Phiên bản Python hỗ trợ:

  • Hàm pop đã được hỗ trợ từ Python 2.3 và tiếp tục được hỗ trợ trong tất cả các phiên bản Python sau này, bao gồm Python 3.x.
Hàm pop – Kiểu dữ liệu Dictionary

2. Một số ví dụ hàm pop

2.1. Dùng hàm pop để tìm kiếm và loại bỏ một phần tử

# Tạo một từ điển
student_info = {
    'name': 'Alice',
    'age': 25,
    'courses': ['Math', 'Science', 'English']
}

# Loại bỏ và lấy giá trị của khóa 'age'
age = student_info.pop('age', None)

# Hiển thị thông tin và tuổi
print("Thông tin sinh viên:", student_info)
print("Tuổi:", age)

#Output: Thông tin sinh viên: {'name': 'Alice', 'courses': ['Math', 'Science', 'English']}
#Tuổi: 25

Trong ví dụ này, chúng ta sử dụng student_info.pop('age', None) để loại bỏ và lấy giá trị của khóa ‘age’. Nếu khóa không tồn tại, pop() trả về None. Điều này hữu ích khi bạn muốn lấy giá trị và cũng loại bỏ một phần tử khỏi từ điển.

2.2. Sử dụng default value khi khóa không tồn tại

# Tạo một từ điển
student_info = {
    'name': 'Alice',
    'age': 25,
    'courses': ['Math', 'Science', 'English']
}

# Sử dụng pop với default value
absent_key = 'address'
address = student_info.pop(absent_key, 'Địa chỉ chưa được cập nhật')

# Hiển thị thông báo khi khóa không tồn tại
print(f"Địa chỉ: {address}")
#Output: Địa chỉ: Địa chỉ chưa được cập nhật

Trong ví dụ này, chúng ta sử dụng student_info.pop(absent_key, 'Địa chỉ chưa được cập nhật') để lấy giá trị của khóa ‘address’ từ từ điển. Vì ‘address’ không tồn tại, nó trả về giá trị mặc định là ‘Địa chỉ chưa được cập nhật’.

2.3. Không sử dụng default value khi khóa không tồn tại

# Tạo một từ điển
student_info = {
    'name': 'Alice',
    'age': 25,
    'courses': ['Math', 'Science', 'English']
}

# Sử dụng pop mà không có default value
absent_key = 'address'
try:
    address = student_info.pop(absent_key)
except KeyError:
    address = None

# Hiển thị giá trị khi khóa không tồn tại
print(f"Địa chỉ: {address}")

#Output: Địa chỉ: None

Trong ví dụ này, chúng ta sử dụng student_info.pop(absent_key) để lấy giá trị của khóa ‘address’ từ từ điển. Tuy nhiên, vì ‘address’ không tồn tại, hàm pop sẽ ném một ngoại lệ KeyError. Chúng ta bắt ngoại lệ này và gán giá trị None cho biến address.

2.4. Loại bỏ và xử lý các tiền tố

# Tạo một từ điển
words = {
    'prefix_hello': 'xin chào',
    'prefix_goodbye': 'tạm biệt',
    'prefix_thankyou': 'cảm ơn'
}

# Loại bỏ và xử lý các tiền tố 'prefix_'
prefixes = {}
for key in list(words.keys()):
    if key.startswith('prefix_'):
        prefix = key.split('_')[1]
        value = words.pop(key)
        prefixes[prefix] = value

# Hiển thị các tiền tố và giá trị tương ứng
print("Tiền tố và giá trị tương ứng:")
print(prefixes)

#output: Tiền tố và giá trị tương ứng:
#{'hello': 'xin chào', 'goodbye': 'tạm biệt', 'thankyou': 'cảm ơn'}

Trong ví dụ này, chúng ta loại bỏ và xử lý các tiền tố ‘prefix_’ từ từ điển. Chúng ta sử dụng pop() để loại bỏ các phần tử có khóa có tiền tố ‘prefix_’ và xử lý dữ liệu để lấy ra các tiền tố và giá trị tương ứng.

2.5. Loại bỏ và xử lý các hậu tố

# Tạo một từ điển
words = {
    'hello_suffix': 'xin chào',
    'goodbye_suffix': 'tạm biệt',
    'thankyou_suffix': 'cảm ơn'
}

# Loại bỏ và xử lý các hậu tố '_suffix'
suffixes = {}
for key in list(words.keys()):
    if key.endswith('_suffix'):
        suffix = key.split('_')[0]
        value = words.pop(key)
        suffixes[suffix] = value

# Hiển thị các hậu tố và giá trị tương ứng
print("Hậu tố và giá trị tương ứng:")
print(suffixes)

#output: Hậu tố và giá trị tương ứng:
#{'hello': 'xin chào', 'goodbye': 'tạm biệt', 'thankyou': 'cảm ơn'}

Trong ví dụ này, chúng ta loại bỏ và xử lý các hậu tố ‘_suffix’ từ từ điển. Sử dụng pop() để loại bỏ các phần tử có khóa kết thúc bằng ‘_suffix’ và xử lý dữ liệu để lấy ra các hậu tố và giá trị tương ứng.

Cả ba ví dụ trên thể hiện cách sử dụng hàm dictionary.pop() để lấy dữ liệu từ từ điển và xử lý nó cho các bài toán khác nhau: tìm kiếm, tiền tố và hậu tố