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)