2 svar
61 visningar
Luffy är nöjd med hjälpen
Luffy 449 – Fd. Medlem
Postad: 17 nov 2022 19:54 Redigerad: 17 nov 2022 19:54

Python - Linjärsökning efter "kuperade" ord

Hej, se följande:

Jag har hittills gjort följande:

def linsokkup(ordlista):
    for i in ordlista:
        for j in ordlista:
            #if j[-1:] + j[:-1] == i:
                #print (i + " " + j)

            #if j[-2:] + j[:-2] == i:
                #print (i + " " + j)

            #if j[-3:] + j[:-3] == i:
                #print (i + " " + j)

            #if j[-4:] + j[:-4] == i:
                #print (i + " " + j)

Där de kommenterade är de olika fallen som finns, ordlistan jag har består av ord med endast fem bokstäver.

Funktionen linsok() som jag har skapat från en tidigare uppgift är:

def linsok(ordlista, ord):
        if ord not in ordlista:
            return False
        return True

Det står i uppgiften att funktionen linsokkup() ska anropa linsok(). Varför? Och hur ska implementera den isåfall? 

Laguna Online 28548
Postad: 17 nov 2022 20:29

I stället för din inre loop (for j in ordlista) kan du först konstruera de omvända orden och anropa linsok för att se om det finns i listan.

T.ex. om i är "pinal" så gör du "lpina" och anropar linsok med det. Sedan "alpin" och sedan "nalpi" (antar jag).

Luffy 449 – Fd. Medlem
Postad: 17 nov 2022 21:05
Laguna skrev:

I stället för din inre loop (for j in ordlista) kan du först konstruera de omvända orden och anropa linsok för att se om det finns i listan.

T.ex. om i är "pinal" så gör du "lpina" och anropar linsok med det. Sedan "alpin" och sedan "nalpi" (antar jag).

Tack för hjälpen!

Svara Avbryt
Close