Hovedproblemet knyttet til Python fortløpende tallforskjell mellom er at forskjellen mellom to fortløpende tall ikke alltid er den samme. For eksempel, hvis du har en liste med tall [1, 2, 3], er forskjellen mellom 1 og 2 1, men forskjellen mellom 2 og 3 er bare 0.5. Dette kan forårsake forvirring når du prøver å beregne forskjeller i verdier eller når du bruker algoritmer som er avhengige av en konstant trinnstørrelse.
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))
# Linje 1: Denne linjen definerer en funksjon kalt consecutive_difference som tar inn ett argument, nums.
# Linje 2: Denne linjen lager en tom liste kalt diff.
# Linje 3: Denne linjen er en for-løkke som itererer gjennom lengden av nums minus en.
# Linje 4: Denne linjen legger til den absolutte verdien av differansen mellom hvert element i tall til diff-listen.
# Linje 5: Denne linjen returnerer diff-listen etter at den har blitt fylt ut med alle forskjellene mellom påfølgende elementer i tall.
# Linje 8: Denne linjen setter en variabel kalt nums lik en liste som inneholder 2, 4, 6 og 8.
# Linje 9: Denne linjen skriver ut resultatet av å ringe consecutive_difference på tall.
innhold
Finn fortløpende tall i en liste i Python
Å finne fortløpende tall i en liste i Python er relativt enkelt. Den enkleste tilnærmingen er å gå gjennom listen og sammenligne hvert element med det før det. Hvis forskjellen mellom to elementer er 1, er de fortløpende tall.
Her er et eksempel på hvordan dette kan gjøres:
tall = [1,2,3,4,5,6] # Liste over tall
consecutive_numbers = [] # Liste for å lagre fortløpende tall
for i in range(len(numbers)-1): # Sløyfe gjennom listen
if (tall[i+1] – tall[i]) == 1: # Sjekk om forskjellen mellom to elementer er 1
consecutive_numbers.append(numbers[i]) # Legg til element til listen over fortløpende tall
consecutive_numbers.append(numbers[i+1]) # Legg til neste element til listen over fortløpende tall
print(consecutive_numbers) # Skriv ut liste over fortløpende tall
Få forskjellen mellom fortløpende tall i en liste
I Python kan du få forskjellen mellom fortløpende tall i en liste ved å bruke zip()-funksjonen. Zip()-funksjonen tar to eller flere iterables og returnerer en iterator av tupler. Det første elementet i hver bestått iterable pares sammen, deretter pares det andre elementet i hver bestått iterable sammen, og så videre. For å få forskjellen mellom påfølgende tall i en liste, kan du bruke zip() til å pare opp hvert tall med forgjengeren og deretter trekke dem fra for å få forskjellen. For eksempel:
liste_tall = [1, 2, 3, 4]
forskjeller = [y – x for x, y i zip(listetall[:-1], listetall[1:])]
print (forskjeller) # Utdata: [1, 1, 1]