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
indexvà 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ử.