Một cách khác không nhanh nhất nhưng tôi nghĩ rằng nó đọc độc đáo
>>> [x for x in ['AAT','XAC','ANT','TTA'] if not any(y in x for y in "XN")]
['AAT', 'TTA']
>>> [x for x in ['AAT','XAC','ANT','TTA'] if not set("XN")&set(x)]
['AAT', 'TTA']
Bằng cách này sẽ nhanh hơn cho codon dài (giả sử có một số sự lặp lại)
codon = ['AAT','XAC','ANT','TTA']
def pred(s,memo={}):
if s not in memo:
memo[s]=not any(y in s for y in "XN")
return memo[s]
print filter(pred,codon)
Dưới đây là phương pháp được đề xuất bởi James Brooks, bạn phải kiểm tra để xem đó là nhanh hơn cho dữ liệu của bạn
codon = ['AAT','XAC','ANT','TTA']
def pred(s,memo={}):
if s not in memo:
memo[s]= not set("XN")&set(s)
return memo[s]
print filter(pred,codon)
Đối với codon mẫu này, phiên bản sử dụng bộ là chậm hơn khoảng 10%
Nguồn
2009-12-08 11:39:16
Khi bạn tìm trong trang tham chiếu Python để "xóa" khỏi "danh sách", bạn tìm thấy gì? Có gì không? Vui lòng kiểm tra tài liệu Python, và sau đó cập nhật câu hỏi của bạn với một cái gì đó cụ thể. –
Gợi ý: Bắt đầu tìm kiếm của bạn tại đây: http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-buffer-xrange –
Câu hỏi được nêu rõ ràng. –