Hur man hittar elementet i python list

author
5 minutes, 13 seconds Read

Python har olika datatyper för att lagra en samling data. Python list är en av dem och en lista kan innehålla olika typer av data som nummer, strängar, booleans osv. Ibland krävs det att man söker efter vissa element i en lista. Elementen kan sökas i pythonlistan på olika sätt. Hur du kan hitta ett element och en lista med element i listan förklaras i den här handledningen med hjälp av olika exempel.

Exempel-1: Sök ett enskilt element i en lista med hjälp av ’in’-operatorn

Följande skript visar hur du enkelt kan söka efter ett element i en lista med hjälp av ’in’-operatorn utan att använda någon slinga. En lista med blomnamn definieras i skriptet och ett blomnamn tas som inmatning från användaren för att söka i listan. If-angivelsen används tillsammans med ”in”-operatören för att hitta det inmatade blomnamnet i listan.

#!/usr/bin/env python3
# Definiera en lista med blommor
flowerList =
# Ta namnet på den blomma som du vill söka i listan
flowerName = input(”Ange ett blomnamn:”)
# Sök elementet med hjälp av ”in”-operatorn
if flowerName.lower() in flowerList:
# Skriv ut meddelande om framgång
print(”%s har hittats i listan” %(flowerName))
else:
# Skriv ut meddelande om att objektet inte hittats
print(”%s har inte hittats i listan” %(flowerName))

Utmatning:

Utmatningen visar att Daffodil finns i listan och Lily finns inte i listan.

Exempel-2: Hitta ett element med hjälp av indexmetoden

Ett annat enkelt sätt att hitta ett visst element i en lista med hjälp av indexmetoden. Följande skript visar användningen av index()-metoden för att söka ett element i en lista. Metoden returnerar en giltig indexposition om det särskilda elementet hittas i listan, annars genereras ett ValueError om du vill lagra positionen i en variabel. try-blocket kommer att skriva ut ett framgångsmeddelande om index()-metoden returnerar ett giltigt positionsvärde baserat på sökvärdet. Except-blocket kommer att skriva ut felmeddelandet om det sökta elementet inte finns i listan.

#!/usr/bin/env python3
try:
# Definiera en lista med böcker
bookList =
# Ta namnet på den bok som du vill söka i listan
bookName = input(”Ange ett boknamn:”)
# Sök elementet med hjälp av index-metoden
search_pos = int(bookList.index(bookName))
# Skriv ut meddelande om att boken har hittats
print(”%s bok har hittats i listan” %(bookName))
except(ValueError):
# Skriv ut meddelande om att boken inte har hittats
print(”%s bok har inte hittats i listan” %(bookName))

Utmatning:

Utmatningen visar att ”Goodnight Moon” finns i listan och att ”Charlie and the Chocolate Factory” inte finns i listan.

Exempel-3: Hitta flera index i en lista

Hur du kan hitta ett enskilt element i en lista visas i de två föregående exemplen. Följande skript visar hur du kan söka alla element i en lista inuti en annan lista. Tre listor används i det här skriptet. selectedList är huvudlistan där elementen i searchList kommer att sökas. foundList används här för att lagra de element som hittas i selectedList efter sökningen. Den första for-slingan används för att generera foundList och den andra for-slingan används för att iterera foundList och visa resultatet.

#!/usr/bin/env python3
# Definiera en lista med utvalda personer
selectedList =
# Definiera en lista med sökande person
searchList =
# Definiera en tom lista
foundList =
# Iterera varje element från den utvalda listan
for index, sList in enumerate(selectedList):
# Matcha elementet med elementet i searchList
if sList in searchList:
# Lagra värdet i foundList om matchningen hittas
foundList.append(selectedList)
# iterera searchList
for val i searchList:
# Kontrollera om värdet finns i foundList eller inte
if val i foundList:
>print(”%s is selected.\n” %val)
else:
print(”%s is not selected.\n” %val)

Output:

Följande utdata visas efter att ha kört ordet.

Exempel-4: Hitta ett element med hjälp av anpassad funktion

Om du vill hitta elementet flera gånger i en lista är det bättre att använda en anpassad sökmetod istället för att skriva ett sökskript flera gånger. Följande skript visar hur du kan hitta ett valfritt värde i en lista med hjälp av en anpassad funktion som heter findElement. Funktionen returnerar True om listan innehåller sökelementet, annars returnerar den False.

#!/usr/bin/env python3
# Definiera en lista med mat
food =
# Ta ett matnamn från användaren
search = input(’Skriv in din favoritmat : ’)
# Definiera den anpassade funktionen för att hitta ett element i listan
def findElement(listName, searchElement):
# Läs listan med hjälp av loop
for value in listName:
# Kontrollera om elementets värde är lika med sökvärdet eller inte
if value == searchElement:
return True
# Returnerar false om ingen matchning hittats
return False
# Kalla funktionen med listans namn och sökvärdet
if findElement(food, search.lower()):
print(”%s is found” %search)
else:
print(”%s is not found” %search)

Output:

Följande output kommer att visas för indata ”Cake” och ”Chocolate Cake”.

Exempel-5: Hitta och räkna elementen i en lista baserat på längden

Följande skript visar hur du kan hitta och räkna antalet element i en lista baserat på elementets längd. Här itereras listan med namnet persons med hjälp av for-slingan och längden på varje element i listan kontrolleras. Räknarvärdet ökar om elementets längd är större än eller lika med 7.

#!/usr/bin/env python3
# Definiera en lista med personer
persons =
# Initialisera thecounter
counter = 0
# Iterera listan med hjälp av loop
for name in persons:
# Kontrollera elementets längd
if (len(name) >= 7) :
# Öka räknaren med ett
counter = counter + 1
# Kontrollera värdet på räknaren
if (counter > 0):
>print(”%d person(er) namnlängden är/är mer än 7.” %counter)
else:
print(”Namnlängden för alla personer är mindre än 7.”)

Output:

Följande output visas efter att ha kört skriptet.

Slutsats:

I den här handledningen visas olika sätt att söka efter enstaka och flera element i listan med hjälp av i-operatorn, indexmetoden och en egen funktion. Läsaren kommer att kunna utföra sökning korrekt i pythonlistan efter att ha läst den här handledningen.

Se författarens video: här

Similar Posts

Lämna ett svar

Din e-postadress kommer inte publiceras.