ändra värdet på ett element i python 3

Permalänk

ändra värdet på ett element i python 3

tjenare jag har ett input som är en några siffror och jag vill öka värdet med 5 på en av siffrorna i listan så typ

lista[0]+=5

men jag får traceback eller vad det heter då det är ett input

TypeError: unsupported operand type(s) for -=: 'str' and 'int'

skulle verkligen uppskatta lite hjälp <3

Permalänk
Medlem

Du försöker nu plussa ihop en string med en siffra vilket inte går. Ändra input till listan eller gör om listan först.

Permalänk
Skrivet av Chibariku:

Du försöker nu plussa ihop en string med en siffra vilket inte går. Ändra input till listan eller gör om listan först.

Jag förstår att den tar elementet som en string men jag fattar inte hur jag ska göra det "kort" för att den ska öka värdet med fem på första elementet.

Permalänk
Medlem
Skrivet av madmaster32:

tjenare jag har ett input som är en några siffror och jag vill öka värdet med 5 på en av siffrorna i listan så typ

lista[0]+=5

men jag får traceback eller vad det heter då det är ett input

TypeError: unsupported operand type(s) for -=: 'str' and 'int'

skulle verkligen uppskatta lite hjälp <3

Din input är en sträng med värdet av en siffra, tex "6". Du får fel för att du försöker göra "6"+5 vilket inte går då "6" är en sträng. Du vill köra int(input) för att göra om strängen till en siffra.

Elelr om du måste ha kvar det som en sträng i listan kan du göra lista[0] = str(int(lista[0]) + 5)

Permalänk
Skrivet av kobb3:

Din input är en sträng med värdet av en siffra, tex "6". Du får fel för att du försöker göra "6"+5 vilket inte går då "6" är en sträng. Du vill köra int(input) för att göra om strängen till en siffra.

Elelr om du måste ha kvar det som en sträng i listan kan du göra lista[0] = str(int(lista[0]) + 5)

får TypeError: 'str' object does not support item assignment av den andra lösningen

Permalänk
Medlem

Kan du visa vad du har i listan för det ska funka. Ta en "print lista" och kopiera här.

Permalänk
Skrivet av Chibariku:

Kan du visa vad du har i listan för det ska funka. Ta en "print lista" och kopiera här.

lista=input("skriv 2B")

lista[0]+=5

typ det fast att det ska funka

Permalänk
Medlem
Skrivet av madmaster32:

lista=input("skriv 2B")

lista[0]+=5

typ det fast att det ska funka

Jaha, du har ingen lista, du har bara en sträng. Input ger tillbaka en sträng och inte en lista. Hoppas du förstår hur du ska göra nu.

Felmeddelandet säger helt enkelt att du inte kan skriva ett nytt värde i strängen eftersom python inte fungerar så. Du kan däremot indexera strängen för att få ut första bokstaven i strängen, dock inte skriva ett nytt värde.

Permalänk
Skrivet av kobb3:

Jaha, du har ingen lista, du har bara en sträng. Input ger tillbaka en sträng och inte en lista. Hoppas du förstår hur du ska göra nu.

Felmeddelandet säger helt enkelt att du inte kan skriva ett nytt värde i strängen eftersom python inte fungerar så. Du kan däremot indexera strängen för att få ut första bokstaven i strängen, dock inte skriva ett nytt värde.

Tack så mycket för hjälpen, en annan fråga kan man ta reda på platsen för ett element i en lista?

Permalänk
Medlem
Skrivet av madmaster32:

Tack så mycket för hjälpen, en annan fråga kan man ta reda på platsen för ett element i en lista?

Lista = ["ett", "två", "tre"]
print Lista.index("två")

1

Permalänk
Skrivet av Chibariku:

Lista = ["ett", "två", "tre"]
print Lista.index("två")

1

Tackar sjukt mycket

Permalänk
Medlem
Skrivet av madmaster32:

Tackar sjukt mycket

Det är ofta lättast att bara läsa i dokumentationen!

https://docs.python.org/3/tutorial/datastructures.html

Permalänk
Skrivet av kobb3:

Det är ofta lättast att bara läsa i dokumentationen!

https://docs.python.org/3/tutorial/datastructures.html

Tack för tipset, har varit inne där innan men tänkte inte på det den här gången. Btw trevlig helg på er <3