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

Tính hiệu giữa các phần tử liền kề trong danh sách Python


Trong bài này, chúng ta sẽ thấy cách tạo một danh sách mới từ một danh sách cho trước bằng cách trừ giá trị của các phần tử liền kề. Có nhiều cách tiếp cận để làm điều này.

Với append và range

Trong cách này, chúng ta lặp qua các phần tử danh sách bằng cách trừ giá trị dùng vị trí chỉ số (index) và thêm kết quả mỗi phép trừ vào danh sách mới. Ta dùng hàm range và len để theo dõi số lần lặp.

Ví dụ

listA = [25, 97, 13, 62, 14, 102]
print("Danh sách cho trước:\n", listA)
list_with_diff = []
for n in range(1, len(listA)):
    list_with_diff.append(listA[n] - listA[n-1])
print("Hiệu giữa các phần tử liền kề trong danh sách: \n", list_with_diff)

Kết quả

Chạy mã trên cho kết quả sau:

Danh sách cho trước: [25, 97, 13, 62, 14, 102]
Hiệu giữa các phần tử liền kề trong danh sách: [72, -84, 49, -48, 88]

Với zip và cắt danh sách (list slicing)

Trong cách tiếp cận tiếp theo, ta tạo vòng lặp for để tìm hiệu giữa các phần tử liền kề và tiếp tục thêm kết quả vào danh sách mới.

Ví dụ

listA = [25, 97, 13, 62, 14, 102]
print("Danh sách cho trước:\n", listA)
list_with_diff = []
for i, j in zip(listA[0::], listA[1::]):
    list_with_diff.append(j - i)
print("Hiệu giữa các phần tử liền kề trong danh sách: \n", list_with_diff)

Kết quả

Chạy mã trên cho kết quả sau:

Danh sách cho trước: [25, 97, 13, 62, 14, 102]
Hiệu giữa các phần tử liền kề trong danh sách: [72, -84, 49, -48, 88]