ÖVNINGSUPPGIFT

Uppgift 8 Array: Hantera värden i en array

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


Nyckelord: array, lista

Hantera värden i en array

Skriv en funktion som tar en array och ett heltal som inparametrar. Funktionen ska göra så att alla element förutom första och sista elementet i listan multipliceras med heltalet. Funktionen ska sedan returnera ett nytt fält med de multiplicerade värdena.

Listan och heltalet du ska använda som inparametrar är givna nedan. Använda dig av den givna koden nedan.

def increaseValues(field, inNum):
    # Ersätt pass med din lösning.
    pass

if __name__ == "__main__":
    inNum = 3
    field = [2, 3, 2, 5, 3, 1]
    print(increaseValues(field, inNum))
Lösning
def increaseValues(field, inNum):
    # Skapa ny array
    newField = []
 
    # Loopa igenom alla värden i listan
    for i, element in enumerate(field):
        # Om indexet är det första eller sista, lägg till samma värde
        if i == 0 or i == len(field) -1:
            newField.append(element)

        # Annars, lägg till det multiplicerade talet
        else:
            newField.append(element * inNum)

    return newField

# Programmet börjar här
if __name__ == '__main__':
    inNum = 3
    field = [2, 3, 2, 5, 3, 1]
    newField = increaseValues(field, inNum)
    print(field)
    print(newField)

Här använder vi enumerate() för att loopa igenom alla värden (element) i listan samtidigt som vi även håller reda på vilket index (i) vi är på. Om vi är på antingen första eller sista elementet så gör vi ingenting med elementet, annars multiplicerar vi det med det valda värdet.