Λύθηκε: διαφορά μεταξύ των διαδοχικών αριθμών python

Το κύριο πρόβλημα που σχετίζεται με τη διαφορά μεταξύ των διαδοχικών αριθμών 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: Αυτή η γραμμή ορίζει μια συνάρτηση που ονομάζεται διαδοχική_διαφορά που λαμβάνει ένα όρισμα, nums.
# Γραμμή 2: Αυτή η γραμμή δημιουργεί μια κενή λίστα που ονομάζεται diff.
# Γραμμή 3: Αυτή η γραμμή είναι ένας βρόχος for που επαναλαμβάνεται στο μήκος των αριθμών μείον ένα.
# Γραμμή 4: Αυτή η γραμμή προσθέτει την απόλυτη τιμή της διαφοράς μεταξύ κάθε στοιχείου σε αριθμούς στη λίστα διαφορών.
# Γραμμή 5: Αυτή η γραμμή επιστρέφει τη λίστα διαφορών αφού συμπληρωθεί με όλες τις διαφορές μεταξύ των διαδοχικών στοιχείων σε αριθμούς.
# Γραμμή 8: Αυτή η γραμμή ορίζει μια μεταβλητή που ονομάζεται nums ίση με μια λίστα που περιέχει 2, 4, 6 και 8.
# Γραμμή 9: Αυτή η γραμμή εκτυπώνει το αποτέλεσμα της κλήσης διαδοχικών_διαφορών στους αριθμούς.

Βρείτε διαδοχικούς αριθμούς σε μια λίστα στην Python

Η εύρεση διαδοχικών αριθμών σε μια λίστα στην Python είναι σχετικά εύκολη. Η πιο απλή προσέγγιση είναι να περιηγηθείτε στη λίστα και να συγκρίνετε κάθε στοιχείο με το προηγούμενο. Εάν η διαφορά μεταξύ δύο στοιχείων είναι 1, τότε είναι διαδοχικοί αριθμοί.

Ακολουθεί ένα παράδειγμα για το πώς μπορεί να γίνει αυτό:

αριθμοί = [1,2,3,4,5,6] # Λίστα αριθμών
συνεχόμενοι_αριθμοί = [] # Λίστα για αποθήκευση διαδοχικών αριθμών
για το i στο 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() παίρνει δύο ή περισσότερους επαναληπτικούς και επιστρέφει έναν επαναλήπτη πλειάδων. Το πρώτο στοιχείο σε κάθε επαναληπτικό που πέρασε ζευγαρώνεται μαζί, στη συνέχεια το δεύτερο στοιχείο σε κάθε επαναληπτικό που πέρασε συνδυάζεται και ούτω καθεξής. Για να λάβετε τη διαφορά μεταξύ διαδοχικών αριθμών σε μια λίστα, μπορείτε να χρησιμοποιήσετε τη zip() για να συνδυάσετε κάθε αριθμό με τον προκάτοχό του και στη συνέχεια να τους αφαιρέσετε για να πάρετε τη διαφορά. Για παράδειγμα:

λίστα_αριθμοί = [1, 2, 3, 4]
διαφορές = [y – x για x, y σε zip(list_numbers[:-1], list_numbers[1:])]
εκτύπωση(διαφορές) # Έξοδος: [1, 1, 1]

Σχετικές αναρτήσεις:

Αφήστε ένα σχόλιο