Vyriešené: rozdiel po sebe idúcich čísel pythonu medzi

Hlavným problémom súvisiacim s rozdielom po sebe idúcich čísel v Pythone je, že rozdiel medzi dvoma po sebe idúcimi číslami nie je vždy rovnaký. Ak máte napríklad zoznam čísel [1, 2, 3], rozdiel medzi 1 a 2 je 1, ale rozdiel medzi 2 a 3 je len 0.5. To môže spôsobiť zmätok pri pokuse o výpočet rozdielov v hodnotách alebo pri použití algoritmov, ktoré sa spoliehajú na konštantnú veľkosť kroku.

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

# Riadok 1: Tento riadok definuje funkciu s názvom consecutive_difference, ktorá obsahuje jeden argument, nums.
# Riadok 2: Tento riadok vytvára prázdny zoznam s názvom diff.
# Riadok 3: Tento riadok je cyklus for, ktorý iteruje cez dĺžku nums mínus jedna.
# Riadok 4: Tento riadok pridáva absolútnu hodnotu rozdielu medzi každým prvkom v číslach do zoznamu rozdielov.
# Riadok 5: Tento riadok vráti zoznam rozdielov po tom, čo bol vyplnený všetkými rozdielmi medzi po sebe nasledujúcimi prvkami v číslach.
# Riadok 8: Tento riadok nastavuje premennú s názvom nums rovnajúcu sa zoznamu obsahujúcemu 2, 4, 6 a 8.
# Riadok 9: Tento riadok vypíše výsledok volania consecutive_difference na nums.

Nájdite po sebe idúce čísla v zozname v Pythone

Nájdenie po sebe idúcich čísel v zozname v Pythone je pomerne jednoduché. Najpriamejším prístupom je prechádzať zoznamom a porovnávať každý prvok s tým, ktorý je pred ním. Ak je rozdiel medzi dvoma prvkami 1, potom sú to po sebe idúce čísla.

Tu je príklad, ako to možno urobiť:

čísla = [1,2,3,4,5,6] # Zoznam čísel
consecutive_numbers = [] # Zoznam na ukladanie po sebe idúcich čísel
pre i v rozsahu(dĺžka(čísla)-1): # Slučka cez zoznam
if (čísla[i+1] – čísla[i]) == 1: # Skontrolujte, či je rozdiel medzi dvoma prvkami 1
consecutive_numbers.append(numbers[i]) # Pridať prvok do zoznamu po sebe idúcich čísel
consecutive_numbers.append(čísla[i+1]) # Pridať ďalší prvok do zoznamu po sebe idúcich čísel
print(consecutive_numbers) # Vytlačí zoznam po sebe idúcich čísel

Získajte rozdiel medzi po sebe idúcimi číslami v zozname

V Pythone môžete získať rozdiel medzi po sebe idúcimi číslami v zozname pomocou funkcie zip(). Funkcia zip() trvá dve alebo viac iterovateľných jednotiek a vracia iterátor n-tic. Prvá položka v každej odovzdanej iterácii sa spáruje dohromady, potom sa spáruje druhá položka v každej odovzdanej iterácii atď. Ak chcete získať rozdiel medzi po sebe idúcimi číslami v zozname, môžete použiť zip() na spárovanie každého čísla s jeho predchodcom a potom ich odčítať, aby ste získali rozdiel. Napríklad:

zoznam_čísla = [1, 2, 3, 4]
rozdiely = [y – x pre x, y v zip(čísla_zoznamu[:-1], čísla_zoznamu[1:])]
tlač (rozdiely) # Výstup: [1, 1, 1]

Súvisiace príspevky:

Pridať komentár