Có thể các giải pháp của bạn hoạt động với ints, nhưng Nó không hoạt động với tôi với từ điển.
Trong một tay, remove () đã không làm việc cho tôi. Nhưng có lẽ nó hoạt động với các loại cơ bản. Tôi đoán mã dưới đây cũng là cách để loại bỏ các mục khỏi danh sách đối tượng.
Mặt khác, 'del' cũng không hoạt động đúng. Trong trường hợp của tôi, sử dụng python 3.6: khi tôi cố gắng xóa một phần tử khỏi danh sách trong lệnh 'for' bucle with 'del', python thay đổi chỉ mục trong quy trình và các hạt nhân dừng sớm trước thời gian. Nó chỉ hoạt động nếu bạn xóa phần tử theo phần tử theo thứ tự đảo ngược . Theo cách này, bạn không thay đổi chỉ số mảng phần tử đang chờ xử lý khi bạn đang trải qua nó
Sau đó, tôi đã sử dụng:
c = len(list)-1
for element in (reversed(list)):
if condition(element):
del list[c]
c -= 1
print(list)
trong đó 'list' giống như [{'key1': value1 '}, {' key2 ': value2}, {' key3 ': value3}, ...]
Ngoài ra, bạn có thể thực hiện nhiều pythonic hơn bằng cách sử dụng liệt kê:
for i, element in enumerate(reversed(list)):
if condition(element):
del list[(i+1)*-1]
print(list)