Python | Multiplicera alla tal i listan
Med en lista, skriv ut värdet som erhållits efter att ha multiplicerat alla tal i a Pytonorm lista.
Exempel:
Input : list1 = [1, 2, 3] Output : 6 Explanation : 1*2*3=6 Input : list1 = [3, 2, 4] Output : 24
Multiplicera alla tal i listan i Python
Det finns flera sätt att utföra multiplikation inom en lista. I detta sammanhang kommer vi att använda vanliga metoder för hur man multiplicerar i Python, som beskrivs nedan.
- Använder Traversal
- Använder sig av numpy.prod()
- Använder lambdafunktion
- Använder sig av Matematikbibliotek
- Använder sig av Jag har() fungera
- Använder genomgång efter index
- Använder sig av För loop
- Använder sig av itertools.accumulate()
- Använder rekursiv funktion
Multiplicera alla siffror i listan med Traversering
Initiera produktens värde till 1 (inte 0 eftersom 0 multiplicerat med något ger noll). Gå till slutet av listan, multiplicera varje tal med produkten. Värdet som lagras i produkten i slutet kommer att ge dig ditt slutliga svar.
Exempel : I det här exemplet använder koden nedan en genomgångsmetod i funktionen ` multiplicera Lista ` för att beräkna produkten av element i listorna `[1, 2, 3]` och `[3, 2, 4]`, vilket resulterar i utdata på 6 respektive 24.
Pytonorm
# 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))> |
Utgång:
6 24
Tidskomplexitet: O(n), där n är antalet element i listan.
Extra utrymme: O(1),
Multiplicera alla tal i listan u den där numpy.prod()
Vi kan använda numpy.prod() från import numpy för att få multiplikationen av alla siffror i listan. Den returnerar ett heltal eller ett flytvärde beroende på multiplikationsresultatet.
Exempel: I det här exemplet använder koden nedan `numpy.prod()` för att hitta produkten av element i listorna `[1, 2, 3]` och `[3, 2, 4]`, vilket resulterar i utdata på 6 och 24, respektive.
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)> |
Utgång:
6 24
Tidskomplexitet: O(n), där n är längden på inmatningslistorna.
Extra utrymme: O(1).
Multiplicera alla tal i listan u sjung lambdafunktion
Lambda’ s definition inkluderar inte en lämna tillbaka uttalande innehåller den alltid ett uttryck som returneras. Vi kan också lägga en lambda-definition var som helst där en funktion förväntas, och vi behöver inte tilldela den till en variabel alls. Detta är enkelheten med lambdafunktioner. De minska() funktion i Python tar in en funktion och en lista som argument. Funktionen anropas med en lambdafunktion och en lista och ett n nytt reducerat resultat returneras . Detta utför en upprepad operation över listans par.
Exempel: I det här exemplet använder koden nedan Pythons `functools.reduce` med en lambda-funktion för att multiplicera alla värden i listorna `[1, 2, 3]` och `[3, 2, 4]`. Resultaten, 6 och 24, skrivs ut.
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)> |
Utgång:
6 24
Tidskomplexitet: O(n) – där n är längden på den längre listan.
Extra utrymme: O(1) – minnet som används är konstant, eftersom inga extra datastrukturer skapas.
Multiplicera alla tal i listan u sjung prod-funktion i mattebiblioteket
Från och med Python 3.8 har en prod-funktion inkluderats i matematikmodul i standardbiblioteket, alltså inget behov av att installera externa bibliotek.
Exempel: I det här exemplet använder koden nedan Pythons `math.prod`-funktion för att beräkna produkten av alla värden i listorna `[1, 2, 3]` och `[3, 2, 4]`. Resultaten, 6 och 24, skrivs ut.
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
Tidskomplexitet : O(n), där n är längden på inmatningslistan.
Extra utrymme: O(1)
Multiplicera alla tal i listan u sing mul() funktion för operatormodul.
Först måste vi importera operatörsmodulen och sedan använda mul() funktion av operatörsmodul som multiplicerar alla värden i listan. I det här exemplet multiplicerar koden nedan alla siffror i listan `[1, 2, 3]` med hjälp av `operator`-modulens `mul`-funktion. Den itererar genom listan, uppdaterar resultatvariabeln och skriver ut den slutliga produkten (utdata: 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)> |
Utgång:
6
Tidskomplexitet: På), där n är längden på inmatningslistan. Extra utrymme: O(1), som är konstant.
Multiplicera alla tal i listan med For Loop
För att multiplicera alla tal i en lista med a För Loop , kan du iterera genom varje element i listan och uppdatera en löpande produktvariabel.
Exempel :I det här exemplet är multiply_list> funktion tar en lista som indata och initierar en variabel product> till 1. Den itererar sedan genom varje element i listan och uppdaterar produkten genom att multiplicera den med det aktuella elementet
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)> |
Utgång:
120
Tidskomplexitet : O(n), där n är längden på inmatningslistan.
Hjälputrymme :O(1).
Multiplicera alla siffror i listan genom att använda genomgång efter index
I det här exemplet definierar koden nedan en funktion, `multiplyList`, för att hitta produkten av listelement med hjälp av en genomgångsmetod. Den multiplicerar sekventiellt varje element i listan. Demonstrationer med listorna `[1, 2, 3]` och `[3, 2, 4]` ger utgångar på 6 respektive 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))> |
Utgång:
6 24
Tidskomplexitet : O(n), där n är längden på inmatningslistan. Hjälputrymme :O(1).
Multiplicera alla tal i listan u sjunga itertools.ackumulera
De `itertools.ackumulera `-funktionen används för kumulativa operationer på en iterabel. I det här fallet ackumuleras produkten av element i listorna. Lambdafunktionen `(lambda x, y: x * y)` definierar multiplikationsoperationen, och de slutliga resultaten erhålls från de ackumulerade värdena.
Exempel: I det här exemplet använder koden nedan `itertools.accumulate` med en lambda-funktion för att multiplicera värden i listorna `[1, 2, 3]` och `[3, 2, 4]`. Ackumulerade resultat konverteras till listor och de sista elementen skrivs ut (utgångar: 6 och 24).
Pytonorm
# 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
Tidskomplexitet: O(n), där n är längden på inmatningslistan. Extra utrymme: På)
Multiplicera alla tal i listan med den rekursiva funktionen
Funktionen produkt_ rekursiv() tar en lista med tal som indata och returnerar produkten av alla tal i listan, med ett rekursivt tillvägagångssätt.
Exempel : I det här exemplet definierar koden nedan en rekursiv funktion, 'produkt_rekursiv', för att beräkna produkten av en listas element. Den hanterar basfall och rekursiva fall och demonstrerar dess funktionalitet med listorna `[1, 2, 3]` och `[3, 2, 4]`, vilket resulterar i utdata på 6 respektive 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> |
Utgång:
6 24
Tidskomplexitet: O(n), där n är antalet element i listan.
Rymdkomplexitet :På)
Multiplicera alla tal i listan med reduce() och mul()-funktionen
Ett sätt att lösa detta problem är att använda det inbyggda reduce() funktion från functools-modulen, som kan applicera en funktion på en iterabel på ett kumulativt sätt. Vi kan använda funktionen operator.mul() för att multiplicera elementen.
Exempel: I det här exemplet använder koden nedan `functools.reduce` och `operator.mul` för att multiplicera element i listan [1, 2, 3], för att skriva ut den kumulativa produkten (utdata: 6). Den visar hur effektiv 'reducera'-funktionen är för kortfattade kumulativa operationer.
Python3
from> functools> import> reduce> from> operator> import> mul> list1> => [> 1> ,> 2> ,> 3> ]> result> => reduce> (mul, list1)> print> (result)> |
Utgång:
6
Tidskomplexitet :O(n)
Extra utrymme: O(1)