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

Python – Tìm phần tử liền kề (Adjacent elements) trong danh sách

Tạo danh sách các cặp phần tử liền kề (trước, sau) cho mỗi phần tử trong danh sách. Phần tử đầu không có trước, phần tử cuối không có sau. Sử dụng enumerate().

Mã nguồn


def find_adjacent_elements(my_list):
    my_result = []
    for index, ele in enumerate(my_list):
        if index == 0:
            my_result.append((None, my_list[index + 1]))
        elif index == len(my_list) - 1:
            my_result.append((my_list[index - 1], None))
        else:
            my_result.append((my_list[index - 1], my_list[index + 1]))
    return my_result

my_list = [13, 37, 58, 12, 41, 25, 48, 19, 23]
print("Danh sách:", my_list)
print("Phần tử liền kề:", find_adjacent_elements(my_list))

Kết quả

Danh sách: [13, 37, 58, 12, 41, 25, 48, 19, 23]
Phần tử liền kề: [(None, 37), (13, 58), (37, 12), (58, 41), (12, 25), (41, 48), (25, 19), (48, 23), (19, None)]

Giải thích

  • Index 0: chỉ có phần tử sau → (None, next).
  • Index cuối: chỉ có phần tử trước → (prev, None).
  • Index giữa: cả trước và sau → (prev, next).
  • Trả về list các tuple (previous, next).

Ứng dụng

Tính gradient, phát hiện biên, smoothing, phân tích chuỗi thời gian.

Cách khác: zip


# Cặp (current, next)
pairs = list(zip(my_list, my_list[1:]))
# Cặp (prev, current) 
pairs = list(zip(my_list[:-1], my_list[1:]))