Hvordan erstatte negative heltall i en Python Array

I Python, oppretter du matriser ved å erklære en datatype ved hjelp av en karakter som en typecode, deretter initialisere array. Hvis du har en rekke undertegnet heltall, kan du søke og erstatte verdier i det at du ikke vil ha. Pythons rekke klasse ikke har en innebygd metode for å erstatte eksisterende verdier i matriser, men du kan omgå dette ved hjelp av løkker for å sjekke verdier fra en eksisterende matrise og føye dem inn i en ny. Men først, sjekk for å se om verdiene er negative heltall, og i så fall erstatte dem.

Bruksanvisning

1 Åpne en Python program fil og skriv inn følgende kode:

fra matrise import *

Denne linjen importerer rekken klassen inn i programmet, slik at du kan opprette og redigere matriser.

2 Skriv inn følgende kode:

def replaceArray (ar):

-> NewArray = array ( 'i', [])

-> For jeg i ar:

-> -> Hvis jeg <0:

-> -> -> NewArray.append (0)

-> -> Annet:

-> -> -> NewArray.append (i)

-> Retur newArray

Husk å rykke skikkelig. Hver "->" representerer en strekpunkt, enten du bruker mellomrom eller tabulatorer til å gjøre det. Den første linjen oppretter en funksjon som heter "replaceArray" som tar en matrise som parameter. Den andre linjen oppretter en ny array å kopiere verdiene fra den gamle. Den tredje linjen starter en sløyfe for å gå gjennom hvert element i matrisen. Mens du gjør dette, den fjerde gjennom syvende linjer sjekk for å se om det aktuelle elementet er et negativt heltall. Hvis så, erstatter det med null og legger den til det nye utvalget. Hvis ikke, bare legger det at verdien til den nye matrise. Du kan erstatte de negative heltall med noe annet du trenger. Den siste linjen returnerer det nye utvalget med de utskiftede verdier.

3 Lagre Python program filen og kjør den i Python shell miljø.

4 Skriv inn følgende kode:

myArr = array ( 'i', [1, -2, 3, -4, 5])

myArr = replaceArray (myArr)

Den første linjen skaper en matrise med både positive og negative heltall i den. Du har kanskje allerede en rekke opprettet andre steder i programmet. Den andre linjen overskriver denne matrisen ved å sende den til den funksjonen du opprettet som bytter ut negative heltall med nuller. De nye verdiene "[1, 0, 3, 0, 5]" er nå i "myArr" array.

Hint

  • Den "replaceArray" funksjonen fungerer også hvis du passerer en liste til det, men det fortsatt returnerer en matrise. For å erstatte negative heltall i en liste, kopiere "replaceArray" funksjon, men endrer navn til "replaceList." Også endre "newArray = array ( 'i', [])" linje til "newList = []" og swap alle forekomster av "newArray" til "newList" i funksjonen.