logo

Python | Padauginkite visus sąraše esančius skaičius

Pateikiame sąrašą, atspausdinkite reikšmę, gautą padauginus visus skaičius iš a Python sąrašą.

Pavyzdžiai:



  Input :    list1 = [1, 2, 3]   Output :   6   Explanation  : 1*2*3=6   Input :   list1 = [3, 2, 4]   Output :   24>

Padauginkite visus Python sąraše esančius skaičius

Yra keletas būdų, kaip atlikti daugybą sąraše. Šiame kontekste mes naudosime dažniausiai naudojamus metodus, kaip dauginti Python, kaip aprašyta toliau.

  • Naudojant „Traversal“.
  • Naudojant numpy.prod()
  • Naudojant lambda funkciją
  • Naudojant Matematikos biblioteka
  • Naudojant Aš turiu() funkcija
  • Naudojamas perėjimas pagal indeksą
  • Naudojant Už kilpą
  • Naudojant itertools.accumulate()
  • Rekursinės funkcijos naudojimas

Padauginkite visus sąrašo skaičius naudodami Perėjimas

Inicijuokite produkto vertę iki 1 (ne 0, nes 0 padauginus iš bet ko grąžina nulį). Pereikite iki sąrašo pabaigos, kiekvieną skaičių padauginkite iš produkto. Galutinį atsakymą pateiks produkto pabaigoje įrašyta vertė.

Pavyzdys : Šiame pavyzdyje toliau pateiktame kode funkcijoje ` naudojamas perėjimo metodas multiplyList Norėdami apskaičiuoti elementų sandaugą sąrašuose „[1, 2, 3]“ ir „[3, 2, 4]“, gaunami atitinkamai 6 ir 24 išvestis.



Python






# Python program to multiply all values in the> # list using traversal> def> multiplyList(myList):> ># Multiply elements one by one> >result>=> 1> >for> x>in> myList:> >result>=> result>*> x> >return> result> # Driver code> list1>=> [>1>,>2>,>3>]> list2>=> [>3>,>2>,>4>]> print>(multiplyList(list1))> print>(multiplyList(list2))>

>

palyginamas sąrašas
>

Išvestis:

6 24>

Laiko sudėtingumas: O(n), kur n yra elementų skaičius sąraše.
Pagalbinė erdvė: O(1),

Padauginkite visus sąrašo skaičius u kad numpy.prod()

Galime naudoti numpy.prod() iš importo numpy, kad gautumėte visų sąrašo skaičių padauginimą. Jis grąžina sveikąjį skaičių arba slankiąją reikšmę, priklausomai nuo daugybos rezultato.

Pavyzdys : Šiame pavyzdyje toliau pateiktas kodas naudoja „numpy.prod()“, kad surastų elementų sandaugą sąrašuose „[1, 2, 3]“ ir „[3, 2, 4]“, todėl gaunami 6 ir 24 išėjimai, atitinkamai.

Python3




# Python3 program to multiply all values in the> # list using numpy.prod()> import> numpy> list1>=> [>1>,>2>,>3>]> list2>=> [>3>,>2>,>4>]> # using numpy.prod() to get the multiplications> result1>=> numpy.prod(list1)> result2>=> numpy.prod(list2)> print>(result1)> print>(result2)>

>

>

Išvestis:

6 24>

Laiko sudėtingumas: O(n), kur n yra įvesties sąrašų ilgis.
Pagalbinė erdvė: O(1).

Padauginkite visus sąrašo skaičius u dainuoti lambda funkciją

Lambda' s apibrėžimas neapima a grąžinti teiginį, jame visada yra grąžinama išraiška. Mes taip pat galime įdėti lambda apibrėžimą visur, kur tikimasi funkcijos, ir mums visai nereikia jos priskirti kintamajam. Tai yra lambda funkcijų paprastumas. The sumažinti () funkcija Python naudoja funkciją ir sąrašą kaip argumentą. Funkcija iškviečiama naudojant lambda funkciją, sąrašą ir n grąžinamas sumažintas rezultatas . Tai atlieka pasikartojančią operaciją su sąrašo poromis.

Pavyzdys : Šiame pavyzdyje toliau pateiktame kode naudojama Python „functools.reduce“ su lambda funkcija, kad padaugintų visas reikšmes sąrašuose „[1, 2, 3]“ ir „[3, 2, 4]“. Rezultatai, 6 ir 24, yra atspausdinti.

Python3




# Python3 program to multiply all values in the> # list using lambda function and reduce()> from> functools>import> reduce> list1>=> [>1>,>2>,>3>]> list2>=> [>3>,>2>,>4>]> result1>=> reduce>((>lambda> x, y: x>*> y), list1)> result2>=> reduce>((>lambda> x, y: x>*> y), list2)> print>(result1)> print>(result2)>

>

>

Išvestis:

6 24>

Laiko sudėtingumas: O(n) – čia n yra ilgesnio sąrašo ilgis.
Pagalbinė erdvė: O(1) – naudojama atmintis yra pastovi, nes nesukuriamos papildomos duomenų struktūros.

Padauginkite visus sąrašo skaičius u dainuoti matematikos bibliotekos prod funkciją

Pradėjus „Python 3.8“, į programą įtraukta prod funkcija matematikos modulis standartinėje bibliotekoje, todėl nereikia diegti išorinių bibliotekų.

Pavyzdys : Šiame pavyzdyje toliau pateiktame kode naudojama Python funkcija „math.prod“, kad būtų galima apskaičiuoti visų sąrašų „[1, 2, 3]“ ir „[3, 2, 4]“ verčių sandaugą. Rezultatai, 6 ir 24, yra atspausdinti.

Python3




# Python3 program to multiply all values in the> # list using math.prod> import> math> list1>=> [>1>,>2>,>3>]> list2>=> [>3>,>2>,>4>]> result1>=> math.prod(list1)> result2>=> math.prod(list2)> print>(result1)> print>(result2)>

>

>

Išvestis:

6 24>

Laiko sudėtingumas : O(n), kur n yra įvesties sąrašo ilgis.
Pagalbinė erdvė: O(1)

Padauginkite visus sąrašo skaičius u sing mul() operatoriaus modulio funkcija.

Pirmiausia turime importuoti operatoriaus modulį, tada naudoti mul() funkcija operatoriaus modulio padauginus visas sąrašo reikšmes. Šiame pavyzdyje toliau pateiktas kodas padaugina visus sąrašo skaičius „[1, 2, 3]“, naudodamas „operatoriaus“ modulio „mul“ funkciją. Jis kartoja sąrašą, atnaujina rezultato kintamąjį ir išspausdina galutinį produktą (išvestis: 6).

Python3




# Python 3 program to multiply all numbers in> # the given list by importing operator module> from> operator>import>*> list1>=> [>1>,>2>,>3>]> m>=> 1> for> i>in> list1:> ># multiplying all elements in the given list> ># using mul function of operator module> >m>=> mul(i, m)> # printing the result> print>(m)>

>

sujungti java eilutę

>

Išvestis:

6>

Laiko sudėtingumas: O(n), kur n yra įvesties sąrašo ilgis. Pagalbinė erdvė: O(1), kuri yra pastovi.

Padauginkite visus sąrašo skaičius naudodami For Loop

Norėdami padauginti visus sąrašo skaičius naudodami a Už Loop , galite kartoti kiekvieną sąrašo elementą ir atnaujinti veikiantį produkto kintamąjį.

Pavyzdys : Šiame pavyzdyjemultiply_list>funkcija paima sąrašą kaip įvestį ir inicijuoja kintamąjįproduct>iki 1. Tada jis kartoja kiekvieną sąrašo elementą, atnaujindamas produktą padaugindamas jį iš dabartinio elemento

Python3




def> multiply_list(list1):> ># Initialize product to 1> >product>=> 1> > ># Iterate through each element in the list> >for> element>in> list1:> >product>*>=> element> > >return> product> # Example> list1>=> [>1>,>2>,>3>,>4>,>5>]> result>=> multiply_list(list1)> print>(result)>

>

>

Išvestis:

120>

Laiko sudėtingumas : O(n), kur n yra įvesties sąrašo ilgis.
Pagalbinė erdvė : O(1).

pd sujungti

Padauginkite visus sąraše esančius skaičius naudojant perėjimą pagal indeksą

Šiame pavyzdyje toliau pateiktas kodas apibrėžia funkciją „multiplyList“, kad surastų sąrašo elementų sandaugą naudojant perėjimo metodą. Jis nuosekliai padaugina kiekvieną sąrašo elementą. Demonstracijos su sąrašais „[1, 2, 3]“ ir „[3, 2, 4]“ duoda atitinkamai 6 ir 24 rezultatus.

Python3




# Python program to multiply all values in the> # list using traversal> def> multiplyList(myList) :> > ># Multiply elements one by one> >result>=> 1> >for> i>in> range>(>0>,>len>(myList)):> >result>=> result>*> myList[i]> >return> result> > # Driver code> list1>=> [>1>,>2>,>3>]> list2>=> [>3>,>2>,>4>]> print>(multiplyList(list1))> print>(multiplyList(list2))>

>

>

Išvestis:

6 24>

Laiko sudėtingumas : O(n), kur n yra įvesties sąrašo ilgis. Pagalbinė erdvė : O(1).

Padauginkite visus sąrašo skaičius u dainuoti iterto įrankius.kaupti

The `iterįrankiai.kaupti Funkcija ` naudojama kaupiamosioms kartojimo operacijoms. Šiuo atveju jis kaupia sąrašų elementų sandaugą. Lambda funkcija „(lambda x, y: x * y)“ apibrėžia daugybos operaciją, o galutiniai rezultatai gaunami iš sukauptų reikšmių.

Pavyzdys : Šiame pavyzdyje toliau pateiktame kode naudojama „itertools.accumulate“ su lambda funkcija, kad padaugintų reikšmes sąrašuose „[1, 2, 3]“ ir „[3, 2, 4]“. Sukaupti rezultatai konvertuojami į sąrašus ir spausdinami paskutiniai elementai (išėjimai: 6 ir 24).

Python




# Python3 program to multiply all values in the> # list using lambda function and accumulate()> from> itertools>import> accumulate> list1>=> [>1>,>2>,>3>]> list2>=> [>3>,>2>,>4>]> result1>=> list>(accumulate(list1, (>lambda> x, y: x>*> y)))> result2>=> list>(accumulate(list2, (>lambda> x, y: x>*> y)))> print>(result1[>->1>])> print>(result2[>->1>])>

>

>

Išvestis:

  6     24>

Laiko sudėtingumas: O(n), kur n yra įvesties sąrašo ilgis. Pagalbinė erdvė: O(n)

Padauginkite visus sąrašo skaičius naudodami rekursinę funkciją

Funkcija produktas_ rekursyvus () paima skaičių sąrašą kaip įvestį ir grąžina visų sąraše esančių skaičių sandaugą, naudodamas rekursinį metodą.

Pavyzdys : Šiame pavyzdyje toliau pateiktas kodas apibrėžia rekursinę funkciją „product_recursive“, kad būtų galima apskaičiuoti sąrašo elementų sandaugą. Jis tvarko bazinius ir rekursyvinius atvejus, parodydamas savo funkcionalumą sąrašais „[1, 2, 3]“ ir „[3, 2, 4]“, todėl atitinkamai gaunami 6 ir 24 išėjimai.

Python3




java masyvo rūšiavimas

def> product_recursive(numbers):> ># base case: list is empty> >if> not> numbers:> >return> 1> ># recursive case: multiply first element by product of the rest of the list> >return> numbers[>0>]>*> product_recursive(numbers[>1>:])> list1>=> [>1>,>2>,>3>]> product>=> product_recursive(list1)> print>(product)># Output: 6> list2>=> [>3>,>2>,>4>]> product>=> product_recursive(list2)> print>(product)># Output: 24>

>

>

Išvestis:

6 24>

Laiko sudėtingumas: O(n), kur n yra elementų skaičius sąraše.
Erdvės sudėtingumas :O(n)

Padauginkite visus sąraše esančius skaičius naudodami redukcijos () ir mul () funkciją

Vienas iš būdų išspręsti šią problemą yra naudoti įmontuotą sumažinti () funkciją iš functools modulio, kuris gali pritaikyti funkciją kartojamai kaupiamojo būdu. Elementams padauginti galime naudoti funkciją operator.mul().

Pavyzdys : Šiame pavyzdyje toliau pateiktas kodas naudoja „functools.reduce“ ir „operator.mul“, kad padaugintų elementus sąraše [1, 2, 3], spausdinant kaupiamąjį sandaugą (išvestis: 6). Tai parodo „sumažinimo“ funkcijos efektyvumą atliekant glaustas kaupiamąsias operacijas.

Python3




from> functools>import> reduce> from> operator>import> mul> list1>=> [>1>,>2>,>3>]> result>=> reduce>(mul, list1)> print>(result)>

>

>

Išvestis:

6>

Laiko sudėtingumas : O(n)
Pagalbinė erdvė: O(1)