Forberedelse til kodeinterviews · Lektion

Find indekset, ikke kun værdien

Hold styr på positioner med enumerate

Lektion 4 af 413 trin

Find indekset, ikke kun værdien er en gratis Forberedelse til kodeinterviews-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Forberedelse til kodeinterviews, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Forberedelse til kodeinterviews-kurset indeholder 4 lektioner i alt.

Positioner betyder noget

Ofte er svaret ikke værdien, men hvor den befinder sig. Opgaver i konkurrencer spørger ofte efter et 1-baseret eller 0-baseret indeks, så hold styr på positionerne.

a = [4, 1, 7, 3]

Find med .index()

a.index(x) returnerer indekset for den første forekomst. Det er hurtigt at skrive, men gennemløber elementerne fra venstre mod højre på O(n)-tid.

pos = a.index(7)  # 2

Manglende værdier giver fejl

Hvis værdien mangler, udløser .index() en ValueError og får programmet til at gå ned under kørsel. Kontrollér først, om værdien findes, når du er usikker.

if x in a:
    pos = a.index(x)

Gennemløb med enumerate

enumerate giver dig indekset og værdien sammen ved hvert trin – den ryddelige måde at holde styr på positioner, mens du gennemløber arrayet.

for i, v in enumerate(a):
    print(i, v)

Start enumerate ved ét

Mange dommere ønsker 1-baserede positioner. Send start=1 til enumerate, så det første indeks er 1 og passer med opgavebeskrivelsen.

for i, v in enumerate(a, start=1):
    ...

Indekset for maksimum

Hvis du vil finde hvor maksimum ligger, skal du gennemløbe arrayet og huske det bedste indeks, fordi max(a) alene kun giver værdien.

best = 0
for i, v in enumerate(a):
    if v > a[best]:
        best = i

Et smart argmax

Et kompakt trick er at parre hvert indeks med dets værdi og tage maksimum efter værdi. range giver positionen direkte.

best = max(range(len(a)), key=lambda i: a[i])

Saml alle matchende indekser

Har du brug for alle positioner for en værdi? En listeforståelse over enumerate samler alle forekomster på én linje.

idx = [i for i, v in enumerate(a) if v == 7]

Knyt værdi til indeks

Ved gentagne opslag kan du én gang opbygge en dict fra værdi til indeks, så hvert senere opslag tager O(1)-tid.

where = {v: i for i, v in enumerate(a)}

Dubletter kræver omtanke

En dict fra værdi til indeks beholder kun den sidste forekomst. Brug en liste pr. nøgle eller enumerate, når dubletter er vigtige.

where = {}
for i, v in enumerate(a):
    where.setdefault(v, []).append(i)

Skift mellem indeksbaser

Husk basen: Hvis du gemte 0-baserede indekser, men skal udskrive 1-baserede, skal du lægge én til. Hvis du blander baser, kan det give et forkert svar uden nogen fejl.

print(pos + 1)  # 0-based to 1-based

Hurtig test

Du vil have 1-baserede positioner i en løkke. Hvad skriver du?

Opsummering: Hold styr på positioner

Du kan nu finde enkelte indekser, maksimumsindekser og alle indekser samt knytte værdier til positioner på en sikker måde. enumerate er din pålidelige positionssporer. 🎯

Gratis at komme i gang

Lær Forberedelse til kodeinterviews med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
90
Lektioner
360

Ofte stillede spørgsmål

Er lektionen “Find indekset, ikke kun værdien” gratis?

Ja — hele teksten til “Find indekset, ikke kun værdien” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Forberedelse til kodeinterviews-kurset, skal du opgradere til CoddyKit PRO. Forberedelse til kodeinterviews-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Find indekset, ikke kun værdien”?

Hold styr på positioner med enumerate Du øver dig i Forberedelse til kodeinterviews med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Forberedelse til kodeinterviews?

Der kræves ingen tidligere erfaring. Forberedelse til kodeinterviews på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Find indekset, ikke kun værdien”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Forberedelse til kodeinterviews-lektion?

Ja. Alle Forberedelse til kodeinterviews-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Lister, indeksering og slicing til CP
  2. Byg arrays hurtigt med comprehensions
  3. Min, max, sum og løbende totaler
  4. Find indekset, ikke kun værdien
← Tilbage til Forberedelse til kodeinterviews