Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Xóa dictionary khỏi danh sách nếu giá trị cụ thể không có mặt

Loại bỏ dictionary khỏi danh sách các dictionary khi một giá trị cụ thể không có mặt. Sử dụng vòng lặp, toán tử del và lệnh break.

Mã nguồn

my_list = [
    {"code": 1, "fun": "learn"},
    {"code": 2, "fun": "code"},
    {"code": 3, "fun": "test"},
    {"code": 4, "fun": "teach"},
    {"code": 4, "fun": "make"},
    {"code": 4, "fun": "object"}
]

print("Danh sách dictionary gốc:", my_list)

for index in range(len(my_list)):
    if my_list[index]['code'] == 3:
        del my_list[index]
        break

print("Danh sách sau khi xóa:", my_list)

Kết quả

Danh sách dictionary gốc: [{'code': 1, 'fun': 'learn'}, {'code': 2, 'fun': 'code'}, {'code': 3, 'fun': 'test'}, {'code': 4, 'fun': 'teach'}, {'code': 4, 'fun': 'make'}, {'code': 4, 'fun': 'object'}]
Danh sách sau khi xóa: [{'code': 1, 'fun': 'learn'}, {'code': 2, 'fun': 'code'}, {'code': 4, 'fun': 'teach'}, {'code': 4, 'fun': 'make'}, {'code': 4, 'fun': 'object'}]

Giải thích

  • Duyệt qua danh sách bằng chỉ số index.
  • Kiểm tra key 'code' có giá trị 3.
  • Nếu tìm thấy, xóa phần tử tại index và thoát vòng lặp (break).
  • Chỉ xóa dictionary đầu tiên thỏa mãn điều kiện.

Cách tốt hơn: Sử dụng list comprehension để lọc: [d for d in my_list if d.get('code') != 3] – an toàn hơn khi xóa nhiều phần tử.