Khi cần trích xuất các hàng mà các phần tử liên tiếp có chênh lệch không đổi (cấp số cộng), ta dùng vòng lặp và biến cờ (flag).
Ví dụ
my_list = [[31, 27, 10], [8, 11, 12], [11, 12, 13], [6, 9, 10]]
print("Danh sách là:")
print(my_list)
my_result = []
for row in my_list:
temp = True
for index in range(0, len(row) - 1):
if row[index + 1] - row[index] != row[1] - row[0]:
temp = False
break
if temp:
my_result.append(row)
print("Danh sách kết quả:")
print(my_result)
Kết quả đầu ra
Danh sách là: [[31, 27, 10], [8, 11, 12], [11, 12, 13], [6, 9, 10]] Danh sách kết quả: [[11, 12, 13]]
Giải thích
- Định nghĩa danh sách các tuple/hàng và hiển thị.
- Tạo danh sách rỗng kết quả.
- Duyệt từng hàng, gán cờ
temp = True. - Duyệt chỉ số, kiểm tra chênh lệch giữa phần tử liên tiếp có bằng chênh lệch ban đầu không.
- Nếu không, gán
Falsevà thoát vòng lặp. - Nếu cờ vẫn
True, thêm hàng vào kết quả. - Hiển thị kết quả.
Ý nghĩa: Chỉ giữ lại các hàng tạo thành cấp số cộng (chênh lệch giữa các phần tử liên tiếp bằng nhau).