Lọc danh sách tuple, chỉ giữ tối đa K tuple đầu tiên cho mỗi giá trị phần tử thứ nhất.
Ví dụ
Minh họa:
my_list = [(21, 24), (13, 42), (11, 23), (32, 43), (25, 56), (73, 84), (91, 40), (40, 83), (13, 27)]
print("Danh sách tuple:")
print(my_list)
my_key = 1
my_result = []
mems = {}
for sub in my_list:
if sub[0] not in mems:
mems[sub[0]] = 1
else:
mems[sub[0]] += 1
if mems[sub[0]] <= my_key:
my_result.append(sub)
print("Tuple sau lọc:")
print(my_result)
Kết quả
Danh sách tuple: [(21, 24), (13, 42), (11, 23), (32, 43), (25, 56), (73, 84), (91, 40), (40, 83), (13, 27)] Tuple sau lọc: [(21, 24), (13, 42), (11, 23), (32, 43), (25, 56), (73, 84), (91, 40), (40, 83)]
Giải thích
- Duyệt tuple, đếm tần suất giá trị
sub[0]bằng dictmems. - Chỉ append khi count ≤
my_key. - Với
my_key=1chỉ giữ tuple đầu tiên cho mỗi khóa.