2 svar
88 visningar
Kemibiologi1999 43
Postad: 7 dec 2021 13:33

Skapa en funktion som ökar alla värden i en matrix

def run_show():
    list_of_ref_values = [[1], [2], [3], [4], [5]]

    for ref_val in list_of_ref_values:
        increment_pbr(ref_val)
        print(list_of_ref_values == [[2], [3], [4], [5], [6]])
        print()

Jag skall en metod increment_pbr som får detta att printa True. Det som leder till ett problem för mig är for-loopen. Jag lyckas inte få Python att begripa att jag vill att det värde som increment_pbr returnerar skall ändra på värdet i list_of_ref_values och inte vara en ny lista för sig självt.

def increment_pbr(ref: list):
    ref = str(ref)
    ref = int(ref[1])
    ref = ref + 1
    return [ref]

Tänkte att detta kanske skulle fungera, men det fungerade inte.

Jag testade även att skriva [ref] + 1 och dylikt, men detta är ju givetvis fel och jag vet inte hur man annars skall uttrycka sig för att få detta att stämma.

Lindehaven 820 – Lärare
Postad: 7 dec 2021 18:06

Eftersom du har en lista med listor så behöver du ange två index till det element du vill öka värdet på.

list_of_ref_values[0][0] += 1

Laguna Online 30472
Postad: 7 dec 2021 19:07

Som koden är skriven kan increment_pbr få göra ref[0] += 1, eller nånting mer komplicerat om listan kan vara längre, typ:

for i in range(len(ref)):
    ref[i] += 1

Svara
Close