Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python - Giới hạn tuple theo tần suất giá trị phần tử đầu

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 dict mems.
  • Chỉ append khi count ≤ my_key.
  • Với my_key=1 chỉ giữ tuple đầu tiên cho mỗi khóa.