נפתרה: הבדל מספרים עוקבים בפיתון

הבעיה העיקרית הקשורה בהבדל בין מספרים עוקבים של 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: שורה זו מגדירה פונקציה בשם consecutive_difference שמקבלת ארגומנט אחד, nums.
# שורה 2: שורה זו יוצרת רשימה ריקה בשם diff.
# שורה 3: קו זה הוא לולאת for החוזרת באורך של מספרים מינוס אחד.
# שורה 4: שורה זו מוסיפה את הערך המוחלט של ההפרש בין כל אלמנט ב-nums לרשימת ה-diff.
# שורה 5: שורה זו מחזירה את רשימת ההבדלים לאחר שאוכלסה עם כל ההבדלים בין אלמנטים עוקבים במספרים.
# שורה 8: שורה זו מגדירה משתנה הנקרא nums שווה לרשימה המכילה 2, 4, 6 ו-8.
# שורה 9: שורה זו מדפיסה את התוצאה של קריאת consecutive_difference ב-nums.

מצא מספרים עוקבים ברשימה ב- Python

מציאת מספרים עוקבים ברשימה ב-Python היא קלה יחסית. הגישה הפשוטה ביותר היא לעבור דרך הרשימה ולהשוות כל אלמנט לזה שלפניו. אם ההפרש בין שני אלמנטים הוא 1, אז הם מספרים עוקבים.

הנה דוגמה כיצד ניתן לעשות זאת:

מספרים = [1,2,3,4,5,6] # רשימת מספרים
consecutive_numbers = [] # רשימה לאחסון מספרים עוקבים
עבור i in range(len(numbers)-1): # Loop through list
if (מספרים[i+1] – מספרים[i]) == 1: # בדוק אם ההבדל בין שני אלמנטים הוא 1
consecutive_numbers.append(numbers[i]) # הוסף רכיב לרשימה של מספרים עוקבים
consecutive_numbers.append(numbers[i+1]) # הוסף את הרכיב הבא לרשימה של מספרים עוקבים
print(consecutive_numbers) # הדפס רשימה של מספרים עוקבים

קבל את ההבדל בין מספרים עוקבים ברשימה

ב-Python, אתה יכול לקבל את ההבדל בין מספרים עוקבים ברשימה באמצעות הפונקציה zip() . הפונקציה zip() לוקחת שניים או יותר איטרבלים ומחזירה איטרטור של tuples. הפריט הראשון בכל חזרה שעברה מותאם יחדיו, לאחר מכן הפריט השני בכל חזרתי שעבר מותאם יחדיו, וכן הלאה. כדי לקבל את ההפרש בין מספרים עוקבים ברשימה, אתה יכול להשתמש ב-zip() כדי לקשר כל מספר עם קודמו ולאחר מכן להחסיר אותם כדי לקבל את ההפרש. לדוגמה:

list_numbers = [1, 2, 3, 4]
הבדלים = [y - x עבור x, y ב-zip(list_numbers[:-1], list_numbers[1:])]
הדפס (הבדלים) # פלט: [1, 1, 1]

הודעות קשורות:

השאירו תגובה