Python | Gang alle tal på listen

Givet en liste, udskriv den opnåede værdi efter at have ganget alle tal i a Python liste.

Eksempler:

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

Multiplicer alle tal på listen i Python

Der er flere metoder til at udføre multiplikation på en liste. I denne sammenhæng vil vi bruge almindeligt anvendte metoder til, hvordan man multiplicerer i Python, som beskrevet nedenfor.

  • Brug af Traversal
  • Ved brug af numpy.prod()
  • Bruger lambda funktion
  • Ved brug af Matematik bibliotek
  • Ved brug af Jeg har() fungere
  • Brug af gennemløb efter indeks
  • Ved brug af Til sløjfe
  • Ved brug af itertools.accumulate()
  • Brug af rekursiv funktion

Gang alle tal på listen vha Traversering

Initialiser værdien af ​​produktet til 1 (ikke 0, da 0 ganget med noget returnerer nul). Gå til slutningen af ​​listen, gang hvert tal med produktet. Værdien gemt i produktet i slutningen vil give dig dit endelige svar.

Eksempel : I dette eksempel bruger nedenstående kode en traversal tilgang i funktionen ` multiplicere Liste ` for at beregne produktet af elementer i listerne `[1, 2, 3]` og `[3, 2, 4]`, hvilket resulterer i output på henholdsvis 6 og 24.

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))>

Output:

6 24 

Tidskompleksitet: O(n), hvor n er antallet af elementer i listen.
Hjælpeplads: O(1),

Gang alle tal på listen u det numpy.prod()

Vi kan bruge numpy.prod() fra import numpy for at få multiplikationen af ​​alle tallene på listen. Det returnerer et heltal eller en flydende værdi afhængigt af multiplikationsresultatet.

Eksempel: I dette eksempel bruger nedenstående kode `numpy.prod()` til at finde produktet af elementer i listerne `[1, 2, 3]` og `[3, 2, 4]`, hvilket resulterer i output på 6 og 24, henholdsvis.

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)>

Output:

6 24 

Tidskompleksitet: O(n), hvor n er længden af ​​inputlisterne.
Hjælpeplads: O(1).

Gang alle tal på listen u synge lambda funktion

Lambda’ s definition omfatter ikke en Vend tilbage sætning, indeholder den altid et udtryk, der returneres. Vi kan også sætte en lambda-definition overalt, hvor en funktion forventes, og vi behøver slet ikke at tildele den til en variabel. Dette er enkelheden ved lambda-funktioner. Det reducere() funktion i Python tager en funktion og en liste ind som et argument. Funktionen kaldes med en lambdafunktion og en liste og et n ew reduceret resultat returneres . Dette udfører en gentagen operation over parrene på listen.

Eksempel: I dette eksempel bruger nedenstående kode Pythons `functools.reduce` med en lambda-funktion til at gange alle værdier i listerne `[1, 2, 3]` og `[3, 2, 4]`. Resultaterne, 6 og 24, udskrives.

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)>

Output:

6 24 

Tidskompleksitet: O(n) – hvor n er længden af ​​den længere liste.
Hjælpeplads: O(1) – den anvendte hukommelse er konstant, da der ikke oprettes ekstra datastrukturer.

Gang alle tal på listen u synge prod-funktion i matematikbiblioteket

Fra Python 3.8 er der inkluderet en prod-funktion i matematik modul i standardbiblioteket, og det er derfor ikke nødvendigt at installere eksterne biblioteker.

Eksempel: I dette eksempel bruger nedenstående kode Pythons `math.prod`-funktion til at beregne produktet af alle værdier i listerne `[1, 2, 3]` og `[3, 2, 4]`. Resultaterne, 6 og 24, udskrives.

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)>

Produktion:

6 24 

Tidskompleksitet : O(n), hvor n er længden af ​​inputlisten.
Hjælpeplads: O(1)

Gang alle tal på listen u sing mul() funktion af operatormodul.

Først skal vi importere operatørmodulet og derefter bruge mul() funktion af operatørmodulet ved at gange alle værdierne på listen. I dette eksempel multiplicerer nedenstående kode alle tal på listen '[1, 2, 3]' ved hjælp af 'operatør'-modulets 'mul'-funktion. Den gentager listen, opdaterer resultatvariablen og udskriver det endelige produkt (output: 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)>

Output:

6 

Tidskompleksitet: På), hvor n er længden af ​​inputlisten. Hjælpeplads: O(1), som er konstant.

Multiplicer alle tal på listen med For Loop

For at gange alle tal på en liste ved hjælp af a Til Loop , kan du iterere gennem hvert element på listen og opdatere en kørende produktvariabel.

Eksempel :I dette eksempel er multiply_list> funktion tager en liste som input og initialiserer en variabel product> til 1. Den itererer derefter gennem hvert element på listen, og opdaterer produktet ved at gange det med det aktuelle element

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)>

Output:

120 

Tidskompleksitet : O(n), hvor n er længden af ​​inputlisten.
Hjælpeplads : O(1).

Gang alle tal på listen ved at bruge krydsning efter indeks

I dette eksempel definerer nedenstående kode en funktion, `multiplyList`, til at finde produktet af listeelementer ved hjælp af en traversal tilgang. Den multiplicerer sekventielt hvert element på listen. Demonstrationer med listerne `[1, 2, 3]` og `[3, 2, 4]` giver output på henholdsvis 6 og 24.

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))>

Output:

6 24 

Tidskompleksitet : O(n), hvor n er længden af ​​inputlisten. Hjælpeplads : O(1).

Gang alle tal på listen u synge itertools.akkumulere

Det `itertools.accumulere ` funktion bruges til kumulative operationer på en iterabel. I dette tilfælde akkumulerer det produktet af elementer i listerne. Lambda-funktionen `(lambda x, y: x * y)` definerer multiplikationsoperationen, og de endelige resultater opnås fra de akkumulerede værdier.

Eksempel: I dette eksempel bruger nedenstående kode `itertools.accumulate` med en lambda-funktion til at multiplicere værdier i listerne `[1, 2, 3]` og `[3, 2, 4]`. Akkumulerede resultater konverteres til lister, og de sidste elementer udskrives (output: 6 og 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> ])>

Produktion:

  6     24 

Tidskompleksitet: O(n), hvor n er længden af ​​inputlisten. Hjælpeplads: På)

Multiplicer alle tal på listen ved hjælp af den rekursive funktion

Funktionen produkt_ rekursiv() tager en liste over tal som input og returnerer produktet af alle tallene på listen ved hjælp af en rekursiv tilgang.

Eksempel : I dette eksempel definerer nedenstående kode en rekursiv funktion, 'produkt_rekursiv', til at beregne produktet af en listes elementer. Den håndterer basis- og rekursive tilfælde og demonstrerer dens funktionalitet med listerne `[1, 2, 3]` og `[3, 2, 4]`, hvilket resulterer i output på henholdsvis 6 og 24.

Python3




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>

Output:

6 24 

Tidskompleksitet: O(n), hvor n er antallet af elementer i listen.
Rumkompleksitet :På)

Multiplicer alle tal på listen Brug reduce() og mul()-funktionen

En tilgang til at løse dette problem er at bruge den indbyggede reduce() funktion fra functools-modulet, som kan anvende en funktion til en iterable på en kumulativ måde. Vi kan bruge funktionen operator.mul() til at gange elementerne sammen.

Eksempel: I dette eksempel bruger nedenstående kode `functools.reduce` og `operator.mul` til at multiplicere elementer i listen [1, 2, 3], og udskriver det kumulative produkt (output: 6). Det viser effektiviteten af ​​'reducer'-funktionen for kortfattede kumulative operationer.

Python3




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

Output:

6 

Tidskompleksitet : På)
Hjælpeplads: O(1)