Giới thiệu
Để lọc các chuỗi trong list mà chứa ít nhất K ký tự thuộc một tập ký tự cho trước, dùng list comprehension với sum() đếm số ký tự khớp.
Ví dụ minh họa
my_list = ["Python", "is", "fun", "to", "learn"]
print("Danh sách:", my_list)
my_char_list = ['e', 't', 's', 'm', 'n']
my_key = 2
print("Tập ký tự:", my_char_list)
print("Ngưỡng K:", my_key)
my_result = [element for element in my_list if sum(ch in my_char_list for ch in element) >= my_key]
print("Chuỗi có >= K ký tự từ tập:")
print(my_result)
Kết quả đầu ra
Danh sách: ['Python', 'is', 'fun', 'to', 'learn'] Tập ký tự: ['e', 't', 's', 'm', 'n'] Ngưỡng K: 2 Chuỗi có >= K ký tự từ tập: ['Python', 'learn']
Giải thích
ch in my_char_listtrả về True/False (1/0).sum(...)đếm số ký tự của chuỗi nằm trong tập cho trước.- Giữ chuỗi nếu count >= K.
- "Python" có 't','n' (2), "learn" có 'e','a'? wait 'a' không trong tập. "learn": l,e,a,r,n -> e,n (2). "is": i,s -> s (1). "fun": f,u,n -> n (1). "to": t,o -> t (1).