Đã giải quyết: python số liên tiếp khác nhau giữa

Vấn đề chính liên quan đến sự khác biệt giữa các số liên tiếp trong Python là sự khác biệt giữa hai số liên tiếp không phải lúc nào cũng giống nhau. Ví dụ: nếu bạn có một danh sách các số [1, 2, 3], chênh lệch giữa 1 và 2 là 1, nhưng chênh lệch giữa 2 và 3 chỉ là 0.5. Điều này có thể gây nhầm lẫn khi cố gắng tính toán sự khác biệt về giá trị hoặc khi sử dụng thuật toán dựa trên kích thước bước không đổi.

def consecutive_difference(nums): 
    diff = [] 
    for i in range(len(nums)-1): 
        diff.append(abs(nums[i] - nums[i+1])) 
    return diff 
  
# Driver code 
nums = [2, 4, 6, 8] 
print(consecutive_difference(nums))

# Dòng 1: Dòng này định nghĩa một hàm có tên là liên tiếp_difference nhận một đối số, nums.
# Dòng 2: Dòng này tạo một danh sách trống gọi là diff.
# Dòng 3: Dòng này là một vòng lặp for lặp qua độ dài của nums trừ đi một.
# Dòng 4: Dòng này thêm giá trị tuyệt đối của chênh lệch giữa mỗi phần tử tính bằng số vào danh sách khác.
# Dòng 5: Dòng này trả về danh sách khác sau khi nó được điền với tất cả sự khác biệt giữa các phần tử liên tiếp tính bằng số.
# Dòng 8: Dòng này đặt một biến có tên là nums bằng một danh sách chứa 2, 4, 6 và 8.
# Dòng 9: Dòng này in ra kết quả của việc gọi liên tiếp_difference trên nums.

Tìm các số liên tiếp trong một danh sách trong Python

Tìm các số liên tiếp trong danh sách bằng Python tương đối dễ dàng. Cách tiếp cận đơn giản nhất là lặp qua danh sách và so sánh từng phần tử với phần tử trước nó. Nếu hiệu của hai phần tử là 1 thì chúng là hai số liên tiếp.

Đây là một ví dụ về cách thực hiện điều này:

số = [1,2,3,4,5,6] # Danh sách số
liên_tiếp_số = [] # Danh sách lưu các số liên tiếp
for i in range(len(numbers)-1): # Lặp qua danh sách
if (numbers[i+1] – numbers[i]) == 1: # Kiểm tra xem hiệu giữa 1 phần tử có phải là XNUMX không
liên tiếp_số.append(số[i]) # Nối phần tử vào danh sách các số liên tiếp
liên tiếp_số.append(số[i+1]) # Nối phần tử tiếp theo vào danh sách các số liên tiếp
print(consecutive_numbers) # In ra danh sách các số liên tiếp

Nhận sự khác biệt giữa các số liên tiếp trong một danh sách

Trong Python, bạn có thể nhận được sự khác biệt giữa các số liên tiếp trong danh sách bằng cách sử dụng hàm zip(). Hàm zip() nhận hai hoặc nhiều lần lặp và trả về một trình lặp gồm các bộ. Mục đầu tiên trong mỗi lần lặp đi qua được ghép nối với nhau, sau đó mục thứ hai trong mỗi lần lặp đi qua được ghép nối với nhau, v.v. Để có được sự khác biệt giữa các số liên tiếp trong một danh sách, bạn có thể sử dụng zip() để ghép từng số với số trước đó rồi trừ chúng để có được sự khác biệt. Ví dụ:

list_numbers = [1, 2, 3, 4]
khác biệt = [y – x cho x, y trong zip(list_numbers[:-1], list_numbers[1:])]
print(differences) # Đầu ra: [1, 1, 1]

bài viết liên quan:

Để lại một bình luận