logo

Kaip pakeisti reikšmes sąraše Python?

Šiame straipsnyje pamatysime, kaip pakeisti reikšmę sąraše naudojant Python. Sąrašo reikšmes galime pakeisti servaliniais būdais. Toliau pateikiami sąrašo verčių pakeitimo metodai.

  • Sąrašo indeksavimo naudojimas
  • Naudojant kilpą
  • Naudojant ciklą while
  • Naudojant lambda funkciją
  • Sąrašo pjaustymo naudojimas

1 būdas: Sąrašo indeksavimo naudojimas

Sąrašo elementus galime pasiekti naudodami indeksavimą. Tai paprasčiausias ir lengviausias būdas pakeisti reikšmes sąraše python. Jei norime pakeisti pirmąjį sąrašo elementą, galime jį pakeisti naudodami indeksą 0. Žemiau indeksas yra elemento, kurį norime pakeisti, indeksas, o new_value yra reikšmė, kuri turėtų pakeisti senąją sąrašo reikšmę.

Sintaksė: l[indeksas]=nauja_vertė



Kodas:

Python3




# Replace Values in a List using indexing> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> # replace first value> l[>0>]>=> 'Shardul'> # print list> print>(l)>

>

>

Išvestis:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']>

2 būdas: naudojimas Už Loop

Galime naudoti for loop norėdami kartoti sąrašą ir pakeisti sąrašo reikšmes. Tarkime, kad sąraše norime pakeisti „Hardik“ ir „Pant“ į „Shardul“ ir „Ishan“. Pirmiausia sąraše randame reikšmes naudodami for loop ir if sąlygą, tada pakeičiame ją nauja reikšme.

Python3




# Replace Values in a List using For Loop> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> for> i>in> range>(>len>(l)):> ># replace hardik with shardul> >if> l[i]>=>=> 'Hardik'>:> >l[i]>=> 'Shardul'> ># replace pant with ishan> >if> l[i]>=>=> 'Pant'>:> >l[i]>=> 'Ishan'> # print list> print>(l)>

>

>

Išvestis:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']>

3 būdas: naudojimas Nors Loop

Taip pat galime naudoti ciklą, kad pakeistume sąrašo reikšmes. Nors ciklas veikia taip pat kaip ir ciklas. Visų pirma, while cikle apibrėžiame kintamąjį, kurio reikšmė yra 0, ir kartojame sąrašą. Jei vertė atitinka vertę, kurią norime pakeisti, pakeisime ją nauja verte.

Python3




# Replace Values in a List using While Loop> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> i>=> 0> while> i <>len>(l):> ># replace hardik with shardul> >if> l[i]>=>=> 'Hardik'>:> >l[i]>=> 'Shardul'> ># replace pant with ishan> >if> l[i]>=>=> 'Pant'>:> >l[i]>=> 'Ishan'> >i>+>=> 1> # print list> print>(l)>

>

>

Išvestis:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']>

4 būdas: naudojimas Lambda funkcija

Šiuo metodu mes naudojame lambda ir žemėlapio funkciją, kad pakeistume sąrašo reikšmę. map() yra python įtaisyta funkcija, skirta kartoti sąrašą nenaudojant jokio ciklo teiginio. Lambda yra anoniminė python funkcija, kurioje yra vienos eilutės išraiška. Čia pateikėme vieną išraišką kaip sąlygą pakeisti vertę. Čia lambda funkcijoje „Pant“ pakeičiame į „Ishan“. Tada naudodami funkciją list() konvertuojame žemėlapio objektą į sąrašą.

Sintaksė: l=list(žemėlapis(lambda x: x.replace('senoji_vertė','nauja_vertė'),l))

Python3




# Replace Values in a List using Lambda Function> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> # replace Pant with Ishan> l>=> list>(>map>(>lambda> x: x.replace(>'Pant'>,>'Ishan'>), l))> # print list> print>(l)>

>

>

Išvestis:

['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']>

5 būdas: naudojimas Sąrašo pjaustymas

Python leidžia mums pjaustyti sąraše. Pjaustymas leidžia pasiekti kai kurias sąrašo dalis. Sąraše esančias reikšmes galime pakeisti naudodami pjaustymą. Pirmiausia randame kintamojo, kurį norime pakeisti, indeksą ir saugome jį kintamajame „i“. Tada mes pakeičiame tą elementą nauja reikšme naudodami sąrašo pjaustymą. Tarkime, kad norime pakeisti „Rahul“ į „Shikhar“, o ne pirmiausia randame „Rahul“ rodyklę, tada supjaustome sąrašą ir pašaliname „Rahul“ ir toje vietoje pridedame „Shikhar“.

Sintaksė: l=l[:index]+['nauja_reikšmė']+l[indeksas+1:]

Python3




# Replace Values in a List using Slicing> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> # find the index of Rahul> i>=> l.index(>'Rahul'>)> # replace Rahul with Shikhar> l>=> l[:i]>+>[>'Shikhar'>]>+>l[i>+>1>:]> # print list> print>(l)>

>

>

Išvestis:

['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']>

6 būdas: naudojimas funkcinės priemonės.sumažinti metodas:

Algoritmas:

  • Importuoti sumažinimo metodą iš functools.
  • inicijuokite testų sąrašą.
  • Bandymo sąraše naudokite mažinimo metodą, kuris patikrina, ar sąraše yra elementas, ir pakeičia jį nauja reikšme.
  • Spausdinti naują sąrašą.

Python




25 iš 100
# Replace Values in a List using reduce> from> functools>import> reduce> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> # replace Rahul with Shikhar> l>=> reduce>(>lambda> a, b : a>+> [>'Shikhar'>]>if> b>=>=> 'Rahul'> else> a>+> [b], l , [])> # print list> print>(l)>

>

>

Išvestis

['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']>

Laiko sudėtingumas: O(N), kur n yra įvesties sąrašo ilgis.
Pagalbinė erdvė: O(k), kur k yra naujo sąrašo su nauja reikšme ilgis.