Ratkaistu: Python peräkkäisten numeroiden ero

Suurin ongelma, joka liittyy Python-peräkkäisten lukujen eroihin, on se, että ero kahden peräkkäisen luvun välillä ei ole aina sama. Jos sinulla on esimerkiksi luettelo numeroista [1, 2, 3], ero 1:n ja 2:n välillä on 1, mutta ero numeroiden 2 ja 3 välillä on vain 0.5. Tämä voi aiheuttaa sekaannusta yritettäessä laskea arvojen eroja tai käytettäessä algoritmeja, jotka perustuvat vakioaskelkoon.

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

# Rivi 1: Tämä rivi määrittelee consecutive_difference-nimisen funktion, joka ottaa yhden argumentin, numerot.
# Rivi 2: Tämä rivi luo tyhjän luettelon nimeltä diff.
# Rivi 3: Tämä rivi on for-silmukka, joka toistuu numeroiden miinus yksi pituuden.
# Rivi 4: Tämä rivi lisää erotusluetteloon kunkin elementin välisen eron itseisarvon numeroina.
# Rivi 5: Tämä rivi palauttaa erotusluettelon sen jälkeen, kun se on täytetty kaikilla peräkkäisten elementtien välisillä eroilla numeroina.
# Rivi 8: Tämä rivi asettaa muuttujan, jota kutsutaan numeroiksi, yhtä suureksi kuin luettelo, joka sisältää 2, 4, 6 ja 8.
# Rivi 9: Tämä rivi tulostaa consecutive_difference-kutsujen tuloksen numeroilla.

Etsi peräkkäisiä numeroita luettelosta Pythonissa

Peräkkäisten numeroiden löytäminen luettelosta Pythonissa on suhteellisen helppoa. Yksinkertaisin tapa on käydä luetteloa läpi ja verrata jokaista elementtiä sitä edeltävään. Jos kahden alkion välinen ero on 1, ne ovat peräkkäisiä lukuja.

Tässä on esimerkki siitä, kuinka tämä voidaan tehdä:

numerot = [1,2,3,4,5,6] # Luettelo numeroista
consecutive_numbers = [] # Luettelo peräkkäisten numeroiden tallentamiseen
for i in range(len(numbers)-1): # Selaa luetteloa
if (luvut[i+1] – numerot[i]) == 1: # Tarkista, onko kahden alkion välinen ero 1
consecutive_numbers.append(numbers[i]) # Liitä elementti peräkkäisten numeroiden luetteloon
consecutive_numbers.append(numerot[i+1]) # Liitä seuraava elementti peräkkäisten numeroiden luetteloon
print(consecutive_numbers) # Tulosta luettelo peräkkäisistä numeroista

Selvitä luettelon peräkkäisten numeroiden välinen ero

Pythonissa voit selvittää luettelon peräkkäisten numeroiden välisen eron käyttämällä zip()-funktiota. Zip()-funktio ottaa kaksi tai useampia iteroitavia ja palauttaa monikoiden iteraattorin. Kunkin läpäisyn iteroitavan ensimmäinen alkio paritetaan yhteen, sitten kunkin läpäisyn iteroitavan toinen alkio paritetaan yhteen ja niin edelleen. Saadaksesi eron luettelon peräkkäisten lukujen välillä, voit käyttää zip()-komentoa muodostamaan pari kunkin luvun edeltäjäänsä ja sitten vähentämällä ne saadaksesi eron. Esimerkiksi:

lista_numerot = [1, 2, 3, 4]
erot = [y – x x:lle, y zip(luettelon_numerot[:-1], luettelon_numerot[1:])]
tulosta(erot) # Tulostus: [1, 1, 1]

Related viestiä:

Jätä kommentti