common python list methods with syntax
Självstudien förklarar syntaxen och användningen av vanliga Python-listmetoder som tillägg till lista, sorteringslista, pop, bifoga, kopiera, ta bort, omvända etc.:
Python-listor används inte bara för att lagra data. Det finns kraftfulla datastrukturer om de används korrekt. Vi kan dock inte använda dem effektivt om vi inte känner till deras metoder.
Även om Python har några inbyggda funktioner som kan fungera på listor, har Python-listor metoder som kan användas för att fungera på listobjektet både på plats och på plats.
=> Kontrollera ALLA Python-handledning här
Vad du kommer att lära dig:
- Vanliga Python List Methods
- Slutsats
Vanliga Python List Methods
Innan vi gräver in i de vanliga listmetoderna är det viktigt att förstå några egenskaper hos en Python-lista.
- En Python-lista är en samling av noll till oändlig (så många som din dator kan tillåta) datatyper ( tal , Strängar , booléer , tuplar , listor , etc) omgiven av hakparenteser med varje objekt separerat med ett komma (,).
- En Python-lista är en beställde , föränderlig sekvens och använder nollbaserad numrering systemet, dvs alla dess objekt identifieras unikt med ett indexnummer som börjar från 0 och slutar vid n-1, där n är listans längd.
Med detta i åtanke kan vi med säkerhet gräva i att titta på Python-listmetoder. Det är viktigt att veta att Python List har många metoder och Python har många inbyggda metoder för att arbeta med listdata för olika ändamål.
Notera :Framåt kommer alla exempel i denna handledning att köras direkt från ett Python-skal, om inte annat anges.
Metod för tillsats
Innan vi börjar utföra en operation i en lista kanske vi först vill lägga till data i den. Python-listan har följande vanliga metoder för att lägga till objekt i sin lista.
# 1) list.append (x)
De bifoga () -metoden tar ett objekt som ett argument och lägger till det i slutet av listan.
Som framgår ovan beställs Python-listor. Så positionen för varje artikel i en lista är viktig. Om vi lägger till ett objekt i en lista och vi vill att det ska vara det sista objektet i listan, så är append () det vi behöver.
Exempel 1 :I koden nedan innehåller vår lista en namn (Sträng) som första objekt och ålder (nummer) som det andra objektet. Vi vill lägga till ett tredje objekt lön (nummer) till listan så att vi har
list(name, age, salary)
Nedan följer en genomgång av ett Python-skal.
>>> name = 'Enow Kevin' # define a name >>> age = 30 # define an age >>> details = (name, age) # create a list with name and age >>> details ('Enow Kevin', 30) >>> salary = 165000 # define a salary >>> details.append(salary) # add the salary to the end of the list >>> details ('Enow Kevin', 30, 165000) >>>
list.append (x ) liknar till (len ( till ):) = (x).
Tänk på exemplet nedan:
Låt oss lägga till ett fjärde objekt kön (Sträng) till vår detaljeringslista definierad ovan.
>>> gender = 'Male' # define a gender >>> details(len(details):) = (gender) # add gender to the end of the list >>> details ('Enow Kevin', 30, 165000, 'Male') >>>
Notera :I ovanstående exempel använde vi len () som är en Python-inbyggd funktion som kan fungera på en lista.
# 2) list.extend (iterable)
förlänga (iterabel) tar in en iterabel som ett argument, och lägg till varje objekt i den iterabel i listan.
Denna metod använder bifoga( ) under huven. Den här metoden är utmärkt om vi har en samling objekt som vi vill lägga till varje objekt i en annan lista.
Exempel 2 :Låt oss säga att vi har två studenters akademiska betyg betygScience och betygArt och vi bestämmer oss för att utföra en gemensam operation på betygen. Ett sätt kommer att vara att gå med dem först.
Nedan följer en genomgång av ett Python-skal.
>>> gradeScience = (4,3,9,10) # grades in science >>> gradeArt = (9,11,7,5) # grades in art >>> gradeArt (9, 11, 7, 5) >>> gradeArt.extend(gradeScience) # join grades >>> gradeArt # we can now perform the operation on the joined grades (9, 11, 7, 5, 4, 3, 9, 10)
Samma sak kan uppnås med ” bifoga() i en slinga' . Med tanke på att förlänga () -metoden tar in en iterabel och lägger till varje artikel i den iterabel i listan, vi kan använda en för loop för att visa hur det fungerar.
def extend_loop(extender, extended): '''for each item in the extender list, append the item into the extended list''' for item in extender: extended.append(item) if __name__ == '__main__': gradeScience = (4,3,9,10) # grades in science gradeArt = (9,11,7,5) # grades in art print('gradeArt: {} before extended'.format(gradeArt)) # join gradeScience and gradeArt into gradeArt extend_loop(gradeScience, gradeArt) print('gradeArt: {} after extended'.format(gradeArt))
Produktion
Det är viktigt att känna till skillnaden mellan bifoga (x ) och förlänga (iterabelt) .
Skillnad mellan Python-listmetoderna: lägg till och iterabel.
# | bifoga (x) | förlänga (iterabelt) |
---|---|---|
1 | Tar in ett argument och kan vara iterabelt | Tar in ett argument och borde vara iterabelt |
två | Lägger till ett objekt i en lista | Lägger till varje objekt i iterabel i en lista. |
Exempel 3 :För att tydligt se skillnaden mellan att lägga till och förlänga, låt oss överväga detta exempel. Vi märker att båda listApp och listExt ta in en iterabel som ett argument, men det som ändras är resultatet.
>>> listApp = () # empty list >>> listExt = () # empty list >>> listApp.append((1,2,3)) # append an iterable >>> listExt.extend((1,2,3)) # extend an iterable >>> listApp # check output ((1, 2, 3)) >>> listExt # check output (1, 2, 3)
Python-metoden bifoga() tog det iterabla, betraktade det som ett objekt och lade till det i slutet av listan medan Python-metoden förlänga() tog iterabeln och lade till varje artikel i den iterabeln i listan.
# 3) list.insert (i, x)
Python-listmetoden Föra in () tar in två argument (position, item) och infogar objektet på den angivna positionen i listan.
Metoden Föra in () är användbart när vi vill lägga till objekt i en lista och ha kontroll över var exakt vi vill att objekten ska läggas till i listan. Till skillnad från bifoga() och förlänga() som lägger till objekt i slutet av en lista, Föra in () låter oss lägga till objekt i vilken position vi vill ha.
Exempel 4 :Säg att vi har en lista med namn i ordningsföljd och vi får senare reda på att vi har utelämnat ett namn och namnet ska läggas till i listan före ett givet namn. I detta fall båda bifoga() och förlänga() hjälper inte eftersom vi vill lägga till objektet i en viss position.
Lösningen blir att få indexpositionen för namnet innan vi vill lägga till vårt nya namn och använda Föra in() för att lägga till det i den positionen.
>>> names = ('kevin','john','petter','tony','luke','andrew')# list of names >>> new_name = 'enow' # new name to be insert into the list of names >>> given_name = 'tony' # name before which to insert our new name >>> idx_given_name = names.index(given_name) # get index of given name >>> idx_given_name 3 >>> names.insert(idx_given_name, new_name) # insert new name >>> names ('kevin', 'john', 'petter', 'enow', 'tony', 'luke', 'andrew')
Notera: I exemplet ovan använde vi Python-listmetoden index () för att få indexpositionen för ett objekt från en lista ( mer om detta senare ).
Konceptet av Föra in (index, x) är mycket viktigt att förstå. Det första argumentet är indexposition av elementet innan det ska sättas in.
Vilket innebär att lista .insert (0, x) infogar x framför artikeln vid index 0 och lista . Föra in (endast ( lista ), x ) infogar x i slutet av listan (liknar list.append (x)) före positionen vid index len (lista) (detta index finns inte för någon lista)
Metod för subtraktion
I Python, så mycket som vi kan lägga till objekt i en lista, tillåter Python-listor oss också att ta bort eller ta bort objekt från listor.
# 1) list.pop ((i))
De pop () metoden tar bort och returnerar ett objekt från en lista. Den här metoden kan ta ett valfritt indexvärde som ett argument (representerat av kvadratfästet runt i i metodens signatur som betecknar 'valfritt' och inte en lista), vilket anger indexpositionen varifrån ett objekt ska tas bort.
Om inget anges, är det som standard -1, dvs. det sista objektet i listan tas bort och returneras.
Exempel 5 :Med tanke på listan över bilar nedan kan vi välja att ta bort objekt från listan i vilken indexposition som helst, tack vare pop ()
>>> cars = ('Toyota','Audi','BMW','Bugatti','Bently','Aston Martin') #cars >>> cars ('Toyota', 'Audi', 'BMW', 'Bugatti', 'Bently', 'Aston Martin') >>> toyota = cars.pop(0) # remove and return car at index 0 >>> cars ('Audi', 'BMW', 'Bugatti', 'Bently', 'Aston Martin') >>> toyota 'Toyota' >>> bugatti = cars.pop(2) # remove and return car at index 2 >>> cars ('Audi', 'BMW', 'Bently', 'Aston Martin') >>> bugatti 'Bugatti' >>> aston_martin = cars.pop() # remove and return the last car in the list(at index -1) >>> cars ('Audi', 'BMW', 'Bently') >>> aston_martin 'Aston Martin'
# 2) list.remove (x)
Python-listmetoden ta bort (x) tar bort den första förekomsten av ett objekt som är lika med x.
Metoden ta bort() är användbart när vi vill ta bort ett objekt från en lista men vi bryr oss inte om objektet och vi vet inte var exakt det är placerat i listan.
Exempel 6 :Vi har en lista med böcker och vi vill ta bort en viss bok med namn från listan eftersom vi inte längre behöver den.
>>> books = ('python for beginners','python in a nutshell','python in action') # list of books >>> books ('python for beginners', 'python in a nutshell', 'python in action') >>> book_to_remove = 'python in a nutshell' # book to be removed >>> books.remove(book_to_remove) # remove book >>> books ('python for beginners', 'python in action')
Notera: Om ett objekt ges till ta bort() som ett argument men det finns inte i listan, a ValueError höjs. Så denna metod ska alltid kallas inuti a försök utom för att hantera undantaget.
Vi kan se några få skillnader mellan metoderna pop () och ta bort() enligt nedanstående:
# | pop () | ta bort() |
---|---|---|
1 | Accepterar ett valfritt argument och bör vara en indexposition för det objekt som ska tas bort. Om indexet ligger utanför intervallet höjs en IndexError | Accepterar ett argument och bör vara objektet som ska tas bort. Om objektet inte finns i listan höjs en ValueError |
två | Tar bort objektet från listan och returnerar det. | Tar bort objektet från listan men returnerar det inte. |
# 3) list.clear ()
Python-listmetod klar () tar bort alla objekt från listan, vilket gör det tomt. Det krävs inga argument.
Denna metod är användbar för att tilldela listobjektet med nya värden.
Exempel 7 :Vi har en lista som innehåller en samling namn, men vi vill ersätta namnen med nya namn. I det här fallet rensar vi först de tidigare namnen genom att göra listobjektet tomt och lägger sedan till våra nya namn med en av de olika Python-listmetoderna för ett tillägg som vi såg ovan.
>>> names = ('enow','kevin','eyong') # our collection of names >>> names.clear() # clear the list object >>> names () >>> names.extend(('ayamba','derrick','fred')) # add new names with the extend() method >>> names ('ayamba', 'derrick', 'fred')
Notera :Vi kan uppnå samma sak med av lista(:).
Många kan utan tvekan säga det istället för att använda klar (), varför inte tilldela vi bara listan med en tom lista som den här
>>> a = (4,5,3) # list object containing numbers >>> a= () # re-assign to an empty list >>> a ()
Tja, här är problemet med att göra detta. Om du har två variabler ( till och b ) som refererar till ett listobjekt ((4,5,3)), som kallar clear () på någon av variablerna (säg till ) tar bort objekt från det refererade listobjektet.
Men om du tilldelar om någon av variablerna (säg till ) med en tom lista, sedan den som tilldelades om ( till ) kommer inte längre att referera till samma listobjekt som b .
>>> a = (4,5,3) # define a list object with numbers >>> b = a # assign 'a' to a new variable 'b' >>> b (4, 5, 3) >>> a = () # re-assign 'a' to an empty list. This changes its referenced object >>> a () >>> b # 'b' doesn't change because it doesn't reference the same list object as 'a' (4, 5, 3)
Metoder för analys
För det mesta vill vi veta och förstå saker i vårt listobjekt. Python-listan har några metoder som vi kan använda för att förstå dess objekt.
# 1) list.index (x (, start (, slut)))
Python-listmetoden index (x) returnerar ett nollbaserat index i listan över det första objektet vars värde är lika med x. Det krävs ett obligatoriskt och två valfria argument. Det första argumentet (x) representerar det objekt vi vill hitta dess index.
virtual reality-spelglasögon xbox 360
De två sista argumenten (starta, slutet ) bestämma ett start- och slutindex (exklusivt) index från vilket du ska söka. Till skillnad från andra programmeringsspråk som JavaScript där dess motsvarande metod index för () returnerar -1 när det inte finns något sådant, Python-listmetoden index () höjer en ValueError istället.
Exempel 8 :Referens Exempel 4 där vi använde index () för att få indexpositionen för ett namn i en namnlista. I detta exempel 8 kommer vi att se hur man använder de valfria argumenten för att begränsa sökningen till en viss del av listan.
>>> fruits = ('Apples','Avocados','Eggfruit','Apples','Cantaloupe','Cucumbers') # list of fruits >>> fruits.index('Apples',1,3) # find index of 'Apples' from index 1 to index 3(exclusive) Traceback (most recent call last): File '', line 1, in ValueError: 'Apples' is not in list >>> fruits.index('Apples',1,4) # find index of 'Apples' from index 1 to index 4(exclusive) 3 >>> fruits.index('Cucumbers',3) # find index of 'Cucumbers' from index 3 to end of list. 5
# 2) list.count (x)
Python-listmetoden räkna (x) används för att bestämma hur många gånger ett visst objekt x visas i en lista.
Till skillnad från uppsättningar () , Python-listor kan innehålla dubbletter, om det intresserar oss att veta om dessa dubbletter och bestämma hur många gånger ett objekt dupliceras, då räkna () är vägen att gå.
Exempel 9 : Säg att vi har ett listobjekt som innehåller namnen på senatorer baserat på deras röster. Ju mer en senat röstas, desto mer visas namnet i listobjektet. Nu vill vi ta reda på hur många röster en viss senat har.
>>> senate_votes = ('Tammy','John','Tammy','Tammy','Thomas','Maria','Maria') # list of senate names based on their votes >>> senate_votes ('Tammy', 'John', 'Tammy', 'Tammy', 'Thomas', 'Maria', 'Maria') >>> tammy_votes = senate_votes.count('Tammy') # get tammy's vote count >>> tammy_votes 3 >>> thomas_votes = senate_votes.count('Thomas') # get thomas's vote count >>> thomas_votes 1 >>> mike_votes = senate_votes.count('Mike') # get mike's vote count >>> mike_votes 0
Notera :Python-listmetoden räkna () returnerar noll (0) om objektet inte visas i listan.
# 3) list.sort (key = None, reverse = False)
Python-listmetoden sortera () sorterar listdata på plats. Det tar in två nyckelordargument.
- nyckel( som standard är Ingen ) : Den specificerar en funktion av ett argument som används för att extrahera objekt från listan och förbereder dem för jämförelse. Till exempel, om vi har en lista med positiva siffror men vi vill att vår sorteringsfunktion ska sortera deras negativa värden kan vi använda den här tangenten för att uppnå detta.
- omvänd( som standard är Falskt ) : Det är ett booleskt värde och om det ställs in på True sorteras det i fallande ordning. Dess värde är som standard falskt och sorterar därför i stigande ordning.
Exempel 10 :Vi har en lista med siffror och vi vill veta det största numret i listan.
>>> numbers = (4,34,6,1,0, 9,33,82,2) # list of numbers >>> numbers (4, 34, 6, 1, 0, 9, 33, 82, 2) >>> sort_numb = numbers.copy() # make a copy to work with >>> sort_numb.sort(reverse=True) # sort in descending order >>> sort_numb (82, 34, 33, 9, 6, 4, 2, 1, 0) >>> sort_numb(0) # get the first item which is the largest number 82
Notera: Vi använde Python-listmetoden kopiera () för att göra en grunt kopia av vår lista ( Mer om detta senare).
Exempel 11: För att visa användningen av nyckeln, låt oss sortera det negativa värdet på objekten i listan.
>>> numbers # list of num (4, 34, 6, 1, 0, 9, 33, 82, 2) >>> sort_neg_numb = numbers.copy() # make a copy to work with >>> sort_neg_numb (4, 34, 6, 1, 0, 9, 33, 82, 2) >>> sort_neg_numb.sort(key=lambda x: -x, reverse=True) # sort in descending order the negative value of each item. >>> sort_neg_numb (0, 1, 2, 4, 6, 9, 33, 34, 82) >>>
Från utdata ovan ser vi att även om vi sorterade i fallande ordning, är utdata i stigande ordning. Detta beror på att vår lambdafunktion i grunden gjorde det så att jämförelsen gjordes på de negativa värdena för varje objekt i listan.
Notera :Eftersom nyckeln anger en funktion av ett argument använde vi a lambda-uttryck för att definiera en anonym funktion. Allt det gör är att det returnerar det negativa värdet för varje objekt i listan.
Andra metoder
I det här avsnittet kommer vi att titta på några Python-listmetoder som kanske inte faller i någon av de kategorier som beskrivs ovan.
# 1) list.copy ()
Python-metoden kopiera () returnerar a grund kopia av listan. Grunt betyder att det bara gör en kopia av den första nivån i en lista ( mer om detta senare ).
Den här metoden är användbar för att behålla de ursprungliga listvärdena innan du ändrar listan. Som vi såg in Exempel 7 ovan skapar inte bara ett nytt objekt genom att tilldela en variabel som refererar till ett listobjekt till en annan variabel. Snarare refererar de två variablerna till samma objekt.
Följaktligen kommer att ändra en kommer att få den andra att förändras.
Exempel 12 :Referensexempel 10 och elva för att se hur denna metod användes.
Notera :Det är intressant att veta att samma sak kan uppnås med skivning ( till (:))
Exempel 13 :För att bättre förstå innebörden av grund i beskrivningen av kopiera (), överväg exemplet nedan.
>>> list1 = (1,2,3) # object list 1 >>> list2 = (0,list1) # object list 2 containing reference to list 1 >>> list2 (0, (1, 2, 3)) >>> list2_copy = list2.copy() # make a shallow copy of list 2 >>> list2_copy (0, (1, 2, 3)) >>> list2(0) = -1 # modify list 2's first level item >>> list2 (-1, (1, 2, 3)) >>> list2_copy # list 2's copy doesn't change (0, (1, 2, 3)) >>> list1(0) = 'a' # modify list 1 >>> list1 ('a', 2, 3) >>> list2 # list 2 changes since it has reference to list 1 (-1, ('a', 2, 3)) >>> list2_copy # list 2's copy changes because the nested list ‘list 1’ wasn't copied. (0, ('a', 2, 3)) >>>
Ovanstående exempel visar att grunt kopiering betyder att alla kapslade iterabla i en lista inte kommer att kopieras.
# 2) list.reverse ()
Python-listmetoden omvänd () omvandlar objekten i en lista på plats. Det tar inget argument.
Den här metoden är användbar när vi vill ändra ordningen till antingen stigande eller fallande efter sortering.
Exempel 14 :Vi har sorterat vår lista i stigande ordning, sedan senare vill vi få den fallande ordningen på den sorterade listan. Vi kan också använda Python-listmetoden sortera () och ställ in omvänd till True, eller så kan vi använda omvänd () listmetod enligt nedan.
>>> numbs = (3,4,1,8,0,44,5) # our list of disordered numbers >>> numbs (3, 4, 1, 8, 0, 44, 5) >>> numbs.sort() # sort, in ascending by default >>> numbs (0, 1, 3, 4, 5, 8, 44) >>> numbs.reverse() # reverse to arrange in descending order >>> numbs (44, 8, 5, 4, 3, 1, 0) >>>
Vanliga frågor
F # 1) Hur tar jag bort något från en lista i Python?
Svar: Vi kan ta bort objekt från en lista på flera sätt med hjälp av Python-listmetoderna och den inbyggda Python-funktionen del.
- Ta bort med list.remove (x) : Detta tar bort objekt x från listan.
>>> a = (4, 3, 6, 1) # our list of numbers >>> a (4, 3, 6, 1) >>> a.remove(3) # remove item '3' from the list >>> a (4, 6, 1) >>>
- Ta bort med list.pop ((i)) : Detta används för att radera och returnera ett objekt i valfri position i listan. Om en indexposition inte ges raderas den i slutet av listan.
>>> a = (4, 3, 6, 1) # our list of numbers >>> a.pop() # remove the last item in the list 1 >>> a (4, 3, 6) >>> a.pop(1) # remove the item at index position 1 3 >>> a (4, 6) >>>
- Ta bort med list.clear () : Detta tar bort alla objekt i listan.
>>> a = (4, 3, 6, 1) # list of numbers >>> a (4, 3, 6, 1) >>> a.clear() # delete all items >>> a ()
- Ta bort med av : Den inbyggda Python-funktionen del kan användas för att ta bort objekt från listan.
>>> a = (4, 3, 6, 1) # list of numbers >>> a (4, 3, 6, 1) >>> del a(0) # delete item at index 0 >>> a (3, 6, 1) >>> del a(1) # delete item at index 1 >>> a (3, 1) >>> del a(:) # delete all items. Same as clear() >>> a () >>>
F # 2) Hur sorterar du en lista i Python?
Svar: För att sortera listor i Python kan vi använda Python-listmetoden sortera (). Den här metoden sorterar listan på plats och tar in två nyckelord för nyckelord och omvänd .
De omvänd nyckelord kan ställas in för att sortera antingen i stigande eller fallande ordning. Alternativt kan vi använda Pythons inbyggda funktion sorterad (). Detta sorteras dock inte på plats.
F # 3) Kan du lägga till flera objekt i en lista i Python?
Svar: Vi kan lägga till flera objekt i en lista med hjälp av Python-listmetoden append () i a slinga , där vi går igenom en iterabel och lägger till varje objekt i listan.
def append_loop(): list1 = (0,1,2,3) # list 1 list2 = (4,5,6,7) # list 2 # iterate through ‘list 2’ using ‘for loop’, and append each item to list1 for item in list2: list1.append(item) print('Concatenated list is {}'.format(list1)) if __name__ == '__main__': append_loop()
Produktion
Vi kan också lägga till flera objekt med Python-listmetoden förlänga (). Det fungerar som “ bifoga () i en för loop ”Som vi såg ovan.
>>> list1 = (0,1,2,3) # list 1 >>> list2 = (4,5,6,7) # list 2 >>> list1.extend(list2) # append each item in list2 into list1 >>> list1 (0, 1, 2, 3, 4, 5, 6, 7) >>>
Alternativt kan vi sammanfoga med + -operatören. Detta fungerar dock inte på plats . Det innebär att den sammanhängande listan returneras medan de ursprungliga listorna förblir oförändrade.
>>> list1 = (0,1,2,3) # list 1 >>> list2 = (4,5,6,7) # list 2 >>> list3 = list1 + list2 # concatenate using the + operator >>> list3 (0, 1, 2, 3, 4, 5, 6, 7) >>>
Slutsats
I den här guiden gick vi igenom några vanliga Python-listmetoder som lägga till, förlänga, infoga, pop, ta bort, rensa, indexera, räkna, kopiera, och omvänd .
Vi såg också flera exempel på hur man använder dessa metoder i olika situationer.
=> Besök här för att se Python Training Series för alla
Rekommenderad läsning
- Python DateTime-handledning med exempel
- Python List-funktioner - Handledning med exempel
- Python-handledning för nybörjare (praktisk Python-träning)
- Python Advanced List Tutorial (List Sort, Reverse, Index, Copy, Join, Sum)
- Java List Methods - Sortera lista, innehåller, Lägg till lista, ta bort lista
- Python-variabler
- Python List - Skapa, komma åt, skiva, lägga till eller ta bort element