Solvita: python sinsekvaj nombroj diferenco inter

La ĉefa problemo rilate al Python sinsekvaj nombroj diferenco inter estas ke la diferenco inter du sinsekvaj nombroj ne estas ĉiam la sama. Ekzemple, se vi havas liston de nombroj [1, 2, 3], la diferenco inter 1 kaj 2 estas 1, sed la diferenco inter 2 kaj 3 estas nur 0.5. Ĉi tio povas kaŭzi konfuzon kiam oni provas kalkuli diferencojn en valoroj aŭ kiam oni uzas algoritmojn, kiuj dependas de konstanta paŝogrando.

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

# Linio 1: Ĉi tiu linio difinas funkcion nomatan sinsekva_diferenco, kiu prenas unu argumenton, nums.
# Linio 2: Ĉi tiu linio kreas malplenan liston nomatan diff.
# Linio 3: Ĉi tiu linio estas for-buklo, kiu ripetas tra la longo de nums minus unu.
# Linio 4: Ĉi tiu linio aldonas la absolutan valoron de la diferenco inter ĉiu elemento en nombroj al la diflisto.
# Linio 5: Ĉi tiu linio resendas la difliston post kiam ĝi estis plenigita kun ĉiuj diferencoj inter sinsekvaj elementoj en nombroj.
# Linio 8: Ĉi tiu linio metas variablon nomatan nums egala al listo enhavanta 2, 4, 6 kaj 8.
# Linio 9: Ĉi tiu linio presas la rezulton de vokado de sinsekva_diferenco sur nums.

Trovu sinsekvajn nombrojn en listo en Python

Trovi sinsekvajn nombrojn en listo en Python estas relative facila. La plej simpla aliro estas trapasi la liston kaj kompari ĉiun elementon kun tiu antaŭ ĝi. Se la diferenco inter du elementoj estas 1, tiam ili estas sinsekvaj nombroj.

Jen ekzemplo de kiel tio povas esti farita:

nombroj = [1,2,3,4,5,6] # Listo de nombroj
consecutive_numbers = [] # Listo por konservi sinsekvajn nombrojn
por i en intervalo (len (nombroj)-1): # Buklo tra listo
if (nombroj[i+1] – nombroj[i]) == 1: # Kontrolu ĉu diferenco inter du elementoj estas 1
consecutive_numbers.append(nombroj[i]) # Aldonu elementon al listo de sinsekvaj nombroj
sinsekvaj_numeroj.append(nombroj[i+1]) # Aldonu sekvan elementon al listo de sinsekvaj nombroj
print(sinsekvaj_nombroj) # Presi liston de sinsekvaj nombroj

Akiru la diferencon inter sinsekvaj nombroj en listo

En Python, vi povas akiri la diferencon inter sinsekvaj nombroj en listo per la funkcio zip(). La funkcio zip() prenas du aŭ pli da ripeteblaj kaj resendas ripetanton de opoj. La unua ero en ĉiu preterpasita iterebla estas parigita kune, tiam la dua ero en ĉiu preterpasita iterebla estas parigita kune, ktp. Por akiri la diferencon inter sinsekvaj nombroj en listo, vi povas uzi zip() por kunigi ĉiun nombron kun ĝia antaŭulo kaj poste subtrahi ilin por akiri la diferencon. Ekzemple:

list_nombroj = [1, 2, 3, 4]
diferencoj = [y – x por x, y en zip(listo_nombroj[:-1], listo_nombro[1:])]
print(diferencoj) # Eligo: [1, 1, 1]

Rilataj afiŝoj:

Lasu komenton