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

Python – Đếm tần suất sublist xuất hiện trong list

Khi cần đếm số lần một sublist xuất hiện liên tiếp trong list lớn, ta dùng list comprehension, len() và slicing.

Ví dụ

my_list = [23, 33, 45, 67, 54, 43, 33, 45, 67, 83, 33, 45, 67, 90, 0]
print("List:", my_list)

sub_list = [33, 45, 67, 90]
print("Sublist:", sub_list)

my_result = len([sub_list for index in range(len(my_list)) if my_list[index : index + len(sub_list)] == sub_list])

print("Số lần xuất hiện:")
print(my_result)

Kết quả đầu ra

List: [23, 33, 45, 67, 54, 43, 33, 45, 67, 83, 33, 45, 67, 90, 0]
Sublist: [33, 45, 67, 90]
Số lần xuất hiện: 1

Giải thích

  • Duyệt index từ 0 đến len(my_list)-1.
  • Cắt slice my_list[index : index + len(sub_list)] so sánh với sub_list.
  • Chỉ index 10: [33,45,67,90] khớp → count = 1.
  • Index 1: [33,45,67,54] ≠ sub_list.
  • Index 6: [33,45,67,83] ≠ sub_list.

Lưu ý: Code tạo list chứa sub_list lặp lại, rồi lấy len(). Tốn bộ nhớ. Cách tốt hơn:

count = sum(1 for i in range(len(my_list) - len(sub_list) + 1) if my_list[i:i+len(sub_list)] == sub_list)