En nestet liste kan være en liste over lister eller inneholde flere datatyper. Hvis du har bygget en fra flere mindre datatyper, vil du kanskje flate den ut for å gjøre elementene mer lesbare og tilgjengelige.
Finn ut hvordan du gjør en nestet liste til en rett liste, med tre forskjellige tilnærminger.
Hvordan flate ut en Python-liste
Det er noen måter å rette opp en nestet liste i Python, avhengig av kompleksiteten. En liste som bare inneholder lister, for eksempel, er lettere å flate ut enn en med blandede datatyper.
Du vil se hvordan du håndterer hver av dem i de følgende delene.
Hvordan flate ut en nestet liste over lister med Sum()-funksjonen
Denne metoden gjelder bare for en Python-liste med lister, og den innebærer å sette sammen elementene i en slik nestet liste. Den gjelder ikke for en liste over løkker, ordbøker, sett eller blandede datatyper fordi du ikke kan sette sammen disse typene.
Mens du kan bruke til løkke for å flate ut en liste over lister, den sum() funksjonen er enkel og mer lesbar ettersom den er en Python one-liner:
nestedList = [[1, 3, 4], [2, 4], [7, 9, 0]]
flatList = sum (nestedList, [])
skrive ut(flatliste)
# Utgang: [1, 3, 4, 2, 4, 7, 9, 0]
Hvordan bruke for-løkken til å flate ut en blandet nestet liste
Du kan bruke en Python for loop for både blandede og homogene datatyper. Så det fungerer enten en nestet liste bare inneholder lister, tupler, sett, ordbøker eller deres blanding:
nestedList = [[1, 3, 4], (1, 5, 6), {1, 2, 4}, {"e": 3, "o":9, "t":7}]
flatliste = []for i i nestedList:
for k i i:
flatliste.legg til(k)skrive ut(flatliste)
# Utgang: [1, 3, 4, 1, 5, 6, 1, 2, 4, 'e', 'o', 't']
Du kan også oppnå dette med en listeforståelse:
flatList = [k for i i nestedList for k i i]
skrive ut(flatliste)
# Utgang: [1, 3, 4, 1, 5, 6, 1, 2, 4, 'e', 'o', 't']
Manipuler Python-lister som du vil
En Python-liste forenkler hvordan du presenterer og får tilgang til data, siden den er lett å manipulere. Mens du har sett hvordan du kan flate ut en nestet Python-liste, er det fortsatt mange justeringer du kan bruke på lister, avhengig av målet ditt. For eksempel er å konvertere en Python-liste til en ordbok en annen vanlig oppgave som Python gjør enkelt.