Đây là một cách thay thế, không sử dụng enum Cả () để tạo các bộ dữ liệu (như trong câu trả lời ban đầu của SilentGhost).
Điều này có vẻ dễ đọc hơn đối với tôi. (Có lẽ tôi sẽ cảm thấy khác đi nếu tôi có thói quen sử dụng liệt kê.) CAVEAT: Tôi chưa thử nghiệm hiệu suất của hai phương pháp.
# Returns a new list. "lst" is not modified.
def delete_by_indices(lst, indices):
indices_as_set = set(indices)
return [ lst[i] for i in xrange(len(lst)) if i not in indices_as_set ]
LƯU Ý: Cú pháp Python 2.7. Đối với Python 3, xrange
=> range
.
Sử dụng:
lst = [ 11*x for x in xrange(10) ]
somelist = delete_by_indices( lst, [0, 4, 5])
nhà thờ
[11, 22, 33, 66, 77, 88, 99]
--- TẶNG KEM ---
Xóa nhiều giá trị khỏi danh sách. Đó là, chúng tôi có các giá trị chúng tôi muốn xóa:
# Returns a new list. "lst" is not modified.
def delete__by_values(lst, values):
values_as_set = set(values)
return [ x for x in lst if x not in values_as_set ]
Sử dụng:
somelist = delete__by_values( lst, [0, 44, 55] )
nhà thờ
[11, 22, 33, 66, 77, 88, 99]
Đây là câu trả lời giống như trước đây, nhưng lần này chúng tôi đã cung cấp các GIÁ TRỊ sẽ bị xóa [0, 44, 55]
.