แก้ไขแล้ว: ไพ ธ อนตัวเลขที่ต่อเนื่องกันระหว่าง

ปัญหาหลักที่เกี่ยวข้องกับความแตกต่างระหว่างตัวเลขติดต่อกันของ Python คือความแตกต่างระหว่างตัวเลขสองตัวที่ติดกันนั้นไม่เหมือนกันเสมอไป ตัวอย่างเช่น หากคุณมีรายการตัวเลข [1, 2, 3] ผลต่างระหว่าง 1 และ 2 คือ 1 แต่ผลต่างระหว่าง 2 และ 3 คือ 0.5 เท่านั้น สิ่งนี้อาจทำให้เกิดความสับสนเมื่อพยายามคำนวณความแตกต่างของค่าหรือเมื่อใช้อัลกอริทึมที่อาศัยขนาดขั้นตอนคงที่

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))

# บรรทัดที่ 1: บรรทัดนี้กำหนดฟังก์ชันที่เรียกว่า continuous_difference ที่รับอาร์กิวเมนต์ nums ในหนึ่งอาร์กิวเมนต์
# บรรทัดที่ 2: บรรทัดนี้สร้างรายการว่างที่เรียกว่า diff
# บรรทัดที่ 3: บรรทัดนี้เป็น for loop ที่วนซ้ำตามความยาวของ nums ลบ XNUMX
# บรรทัดที่ 4: บรรทัดนี้เพิ่มค่าสัมบูรณ์ของความแตกต่างระหว่างแต่ละองค์ประกอบเป็นตัวเลขในรายการส่วนต่าง
# บรรทัดที่ 5: บรรทัดนี้ส่งคืนรายการส่วนต่างหลังจากได้รับการเติมข้อมูลด้วยความแตกต่างทั้งหมดระหว่างองค์ประกอบที่ต่อเนื่องกันเป็นตัวเลข
# บรรทัดที่ 8: บรรทัดนี้ตั้งค่าตัวแปรที่เรียกว่า nums เท่ากับรายการที่มี 2, 4, 6 และ 8
# บรรทัดที่ 9: บรรทัดนี้พิมพ์ผลลัพธ์ของการโทร

ค้นหาตัวเลขที่เรียงกันในรายการในภาษา Python

การค้นหาหมายเลขติดต่อกันในรายการใน Python นั้นค่อนข้างง่าย วิธีที่ง่ายที่สุดคือการวนซ้ำรายการและเปรียบเทียบองค์ประกอบแต่ละรายการกับรายการที่อยู่ก่อนหน้า หากผลต่างระหว่างสององค์ประกอบคือ 1 แสดงว่าเป็นจำนวนต่อเนื่องกัน

ต่อไปนี้คือตัวอย่างวิธีดำเนินการดังกล่าว:

ตัวเลข = [1,2,3,4,5,6] # รายการตัวเลข
quent_numbers = [] # รายการเพื่อจัดเก็บหมายเลขที่ต่อเนื่องกัน
สำหรับผมในช่วง (เลนส์ (ตัวเลข) -1): # วนซ้ำรายการ
ถ้า (ตัวเลข[i+1] – ตัวเลข[i]) == 1: # ตรวจสอบว่าความแตกต่างระหว่างสององค์ประกอบคือ 1
"continuous_numbers.append(numbers[i]) # ผนวกองค์ประกอบเพื่อรายการหมายเลขที่ต่อเนื่องกัน
quent_numbers.append(numbers[i+1]) # ต่อท้ายองค์ประกอบถัดไปเพื่อรายการตัวเลขที่ต่อเนื่องกัน
พิมพ์ (consecutive_numbers) # พิมพ์รายการหมายเลขที่ต่อเนื่องกัน

รับความแตกต่างระหว่างตัวเลขที่เรียงกันในรายการ

ใน Python คุณสามารถหาค่าความแตกต่างระหว่างจำนวนที่เรียงกันในรายการได้โดยใช้ฟังก์ชัน zip() ฟังก์ชัน zip() รับ iterables ตั้งแต่สองตัวขึ้นไปและส่งกลับ iterator ของ tuples รายการแรกใน Iterable ที่ส่งผ่านแต่ละรายการจะถูกจับคู่เข้าด้วยกัน จากนั้นรายการที่สองในแต่ละ Iterable ที่ส่งผ่านจะถูกจับคู่กัน เช่นนี้ไปเรื่อยๆ ในการหาความแตกต่างระหว่างตัวเลขที่เรียงกันในรายการ คุณสามารถใช้ zip() เพื่อจับคู่ตัวเลขแต่ละตัวกับตัวเลขก่อนหน้า แล้วลบออกเพื่อให้ได้ความแตกต่าง ตัวอย่างเช่น:

list_numbers = [1, 2, 3, 4]
ความแตกต่าง = [y – x สำหรับ x, y ใน zip(list_numbers[:-1], list_numbers[1:])]
พิมพ์ (ความแตกต่าง) # เอาต์พุต: [1, 1, 1]

กระทู้ที่เกี่ยวข้อง:

แสดงความคิดเห็น