ÖVNINGSUPPGIFT

Uppgift 7 Array: Ta bort element

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


Nyckelord: array, lista

Ta bort upprepningar av ett specifikt element

Skriv en funktion removeInputNum som tar en array (beforeField) och ett heltal (inputNum) och returnerar en ny array (newField) där alla element som hade samma värde som inputNum är borttagna. Använd dig av den givna koden nedan.

inputNum = 3
beforeField = [2, 3, 2, 1, 3, 5, 7, 8, 7, 8, 2, 6, 3]

if __name__ == "__main__":
    # Lägg till ditt funktionsanrop här.
    pass
Ledtråd

Lägg till ett nytt värde i en lista med append. Exempelvis:

arr = []
arr.append(2)
print(arr)

Utskriften blir [2].

Lösning
def removeInputNum(beforeField, inputNumber):
    # Skapa en ny lista
    newField = []
    # Loopa igenom alla element i listan
    for element in beforeField:
        # Om talet inte är samma som inputNumber så lägger vi till elementet i nya listan
        if element != inputNumber:
            newField.append(element)

    return newField


if __name__ == '__main__':
    # Programmet börjar här

    # Input number och givna Array
    inputNum = 3
    preArray = [2, 3, 2, 1, 3, 5, 7, 8, 7, 8, 2, 6, 3]

    # Anropa funktionen
    newArray = removeInputNum(preArray, inputNum)
    print(preArray)
    print(newArray)

Vi anropar funktionen removeInputNum och skickar in listan preArray och variabeln inputNum. Inne i funktionen kallas dessa variabler för beforeField samt inputNumber. Notera alltså att namnen på funktionsparametrarna inte behöver heta samma som de värden vi skickar in i funktionen.

Vi loopar sedan igenom alla element i listan och undersöker om elementet matchar med den valda siffran. Om den inte matchar så lägger vi till elementet med append().