PYTHON ENOTHTA 13 – Lists (Part 2)

 

Δωρεάν μαθήματα Python

ΕΙΣΑΓΩΓΗ

Στο σημερινό δωρεάν μάθημα Python θα χρησιμοποιήσουμε τα περισσότερα από τα ενσωματωμένα methods των lists τα οποία μας επιτρέπουν να επηρεάζουμε τα ίδια τα δεδομένα που ανήκουν σε ένα list.

CONDITIONALS ΚΑΙ LISTS

Πριν ξεκινήσουμε να δούμε τα methods των lists και πως αυτά επηρεάζουν τα δεδομένα τους, θα ήταν χρήσιμο να δούμε πως χρησιμοποιούμε το for loop για να λάβουμε πίσω ως αποτέλεσμα όλα τα δεδομένα ή εκείνα μόνο που πληρούν μια συγκεκριμένη συνθήκη. Ο τρόπος με τον οποίο χρησιμοποιείται το for loop μας είναι ήδη γνωστός από προηγούμενη ενότητα.

app.py

teams = ['Arsenal', 'Chelsea', 'Aston Villa',
         'Newcastle', 'Everton', 'Liverpool', 'Watford']

for team in teams:
    print(team)

Output

Arsenal
Chelsea
Aston Villa
Newcastle
Everton
Liverpool
Watford

Ορίζουμε λοιπόν μια τοπική μεταβλητή μέσα στο for loop που ονομάζεται team της οποίας η τιμή κάθε φορά θα είναι ένα-προς-ένα  τα δεδομένα του list teams. Η απλή πράξη που θέλουμε να εκτελέσουμε σε αυτό το απλό παράδειγμα είναι να τυπώσουμε την τιμή που περιέχει η μεταβλητή team. Αμέσως μετά το in ορίζουμε το list από το οποίο θα λάβει τις τιμές η μεταβλητή team.

Μπορούμε όμως να χρησιμοποιήσουμε και if statements έτσι ώστε όχι μόνο να κάνουμε κάποιο έλεγχο στις τιμές που δεχόμαστε αλλά και να δείχνουμε τα ανάλογα μηνύματα στο terminal. Στο παρακάτω παράδειγμα χρησιμοποιούμε το in για να βρούμε αν μια τιμή υπάρχει μέσα στο list , ενώ με το not in ψάχνουμε για τιμή που δεν υπάρχει στο list.

app.py

teams = ['Arsenal', 'Chelsea', 'Aston Villa',
         'Newcastle', 'Everton', 'Liverpool', 'Watford']

if "Arsenal" in teams:
    print("This teams belongs to the Premier League")
if "Coventry" not in teams:
    print("This team belongs to the Championship League")

Output

This teams belongs to the Premier League
This team belongs to the Championship League

Υπάρχουν κάποιες φορές που ενδιαφερόμαστε να βρούμε αν ένα list είναι άδειο από δεδομένα, όπως για παράδειγμα ένα καλάθι αγοράς. Για να βρούμε αν το list είναι άδειο μπορούμε να γράφουμε τον παρακάτω κώδικα:

app.py

teams = ['Arsenal', 'Chelsea', 'Aston Villa',
         'Newcastle', 'Everton', 'Liverpool', 'Watford']

if not teams:
    print("The list is empty of team")
else:
    print("The list contains teams")

Output

The list contains teams

METHODS FOR MANAGING LISTS

Όπως αναφέραμε στην αρχή του σημερινού δωρεάν μαθήματος Python, το list περιέχει αρκετά methods τα οποία μας δίνουν την δυνατότητα να διαχειριστούμε τα δεδομένα που ανήκουν στο list. Πάμε λοιπόν να δούμε τα κυριότερα από αυτά τα methods.

len( )

Το len( ) function (θα καταλάβετε σε μελλοντικές ενότητες την διαφορά ανάμεσα σε function και method) δέχεται μέσα στην παρένθεση το όνομα ενός list και μας επιστρέφει πίσω το συνολικό αριθμό στοιχείων που περιέχονται στο list. Φυσικά αν το αποτέλεσμα είναι 0 τότε το list είναι άδειο και αυτός είναι ένας ακόμα τρόπος να ελέγξουμε αν το list περιέχει δεδομένα ή όχι.

app.py

teams = ['Arsenal', 'Chelsea', 'Aston Villa',
         'Newcastle', 'Everton', 'Liverpool', 'Watford']

length = len(teams)
print(length)

Output

7

Για το len( ) function ή για οποιοδήποτε άλλο function ή method αναλύσουμε, το IDE το οποίο χρησιμοποιείτε θα σας δείξει μια γρήγορη περιγραφή του εκάστοτε function αν τοποθετήσετε το cursor επάνω από το function μέσα στο κώδικα σας.

Δωρεάν μαθήματα Python

Το len( ) μπορεί επίσης να χρησιμοποιηθεί μέσα σε ένα for loop σε περιπτώσεις που δεν γνωρίζουμε το ακριβώς μέγεθος του list.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

for index in range(len(premier_league)):
    print(premier_league[index])

Output

Arsenal
Chelsea
Aston Villa
Newcastle
Everton
Liverpool
Watford


ADDING ITEMS IN A LIST

append( )

Όπως έχουμε ήδη αναφέρει από το προηγούμενο δωρεάν μάθημα Python, ένα list είναι ένα αντικείμενο. Αυτό σημαίνει ότι όλα τα methods που θα χρησιμοποιήσουμε ενεργοποιούνται εάν γράψουμε το όνομα του list, τελεία και από την λίστα που εμφανίζεται επιλέξετε το method που θέλετε.

Με την append( ) μπορούμε να προσθέσουμε καινούργια elements στο list. Τα καινούργια elements τοποθετούνται στο τέλος του list

app.py

premier_league = ['Arsenal', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

premier_league.append("Manchester City")
print(premier_league)

Output

['Arsenal', 'Chelsea', 'Aston Villa', 'Newcastle', 'Everton', 'Liverpool', 'Watford', 'Manchester City']

insert( )

Ο δεύτερος τρόπος να προσθέσουμε elements σε ένα list είναι να χρησιμοποιήσουμε την insert( ) method. Η διαφορά της από την append( ) είναι ότι η insert( ) method απαιτεί να δηλώσουμε το index στο οποίο θα τοποθετηθεί το καινούργιο element μέσα στο list. Για την ακρίβεια θα τοποθετηθεί μια θέση πριν από το index που δηλώνουμε.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

premier_league.insert(2, "Manchester City")
print(premier_league)

Output

['Arsenal', 'Chelsea', 'Manchester City', 'Aston Villa', 'Newcastle', 'Everton', 'Liverpool', 'Watford']

REMOVING ITEMS FROM A LIST

pop( )

H pop( ) method αφαιρεί το τελευταίο element από το list. Μπορούμε όμως να δηλώσουμε και το index ενός συγκεκριμένου element που θέλουμε να αφαιρέσουμε από το list.

Αν κοιτάξουμε το documentation θα δούμε ότι η pop( ) όταν εκτελείται επιστρέφει πίσω σαν τιμή το element που αφαίρεσε από το list. Αν και εφόσον μας ενδιαφέρει αυτό, θα μπορούσαμε να γνωρίζουμε αν πάσα στιγμή ποιο στοιχείο αφαιρέθηκε από το list.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

premier_league.pop()
print(premier_league)

premier_league.pop(1)
print(premier_league)

deleted_team = premier_league.pop()
print(f"You just removed {deleted_team} from the list")

Output

['Arsenal', 'Chelsea', 'Aston Villa', 'Newcastle', 'Everton', 'Liverpool']
['Arsenal', 'Aston Villa', 'Newcastle', 'Everton', 'Liverpool']
You just removed Liverpool from the list

index( )

Αν θέλουμε πρώτα να βρούμε σε ποιο index βρίσκεται το element πριν το διαγράψουμε τότε μπορούμε να χρησιμοποιήσουμε το index( ) method

app.py

premier_league = ['Arsenal', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

team_index = premier_league.index("Everton")
print(team_index)

Output

4

remove( )

Με την remove( ) method μπορούμε να αφαιρέσουμε elements με βάση την τιμή που περιέχουν. Στο δικό μας παράδειγμα είναι τα ονόματα των ομάδων.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

premier_league.remove('Aston Villa')
print(premier_league)

Output

['Arsenal', 'Chelsea', 'Newcastle', 'Everton', 'Liverpool', 'Watford']

SORTING A LIST

sorted( )

H sorted( ) function επιστρέφει ένα αντίγραφο του list (δεν αλλάζει το αρχικό list) με τα ονόματα ή τους αριθμούς ταξινομημένα αλφαβητικά ή αριθμητικά. Αν δεν θέλετε να επηρεάσετε το αρχικό list, αυτό το function είναι η καλύτερη επιλογή.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

sorted_teams = sorted(premier_league)
print(premier_league)
print(sorted_teams)

Output

['Arsenal', 'Chelsea', 'Aston Villa', 'Newcastle', 'Everton', 'Liverpool', 'Watford']
['Arsenal', 'Aston Villa', 'Chelsea', 'Everton', 'Liverpool', 'Newcastle', 'Watford']

sort( )

Το sort( ) κάνει την ίδια δουλειά όπως και το sorted( ) με την διαφορά ότι επηρεάζει το αρχικό list.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

premier_league.sort()
print(premier_league)

Output

['Arsenal', 'Aston Villa', 'Chelsea', 'Everton', 'Liverpool', 'Newcastle', 'Watford']

WHY TO USE WHILE LOOPS WITH LISTS

Η remove( ) method αφαιρεί ένα element από το list. Αν όμως υπάρχουν διπλές ή τριπλές τιμές η remove( ) θα αφαιρέσει το πρώτο στοιχείο που θα βρει και θα αφήσει τα υπόλοιπα στο list όπως δείχνει και το παρακάτω παράδειγμα.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

premier_league.remove('Chelsea')
print(premier_league)

Output

['Arsenal', 'Chelsea', 'Aston Villa', 'Newcastle', 'Everton', 'Liverpool', 'Watford']

Για να βεβαιωθούμε ότι όλα τα elements με την τιμή που ψάχνουμε θα αφαιρεθούν από το list κάνουμε χρήση του while loop.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

while "Chelsea" in premier_league:
    premier_league.remove("Chelsea")

print(premier_league)

Output

['Arsenal', 'Aston Villa', 'Newcastle', 'Everton', 'Liverpool', 'Watford']

Πριν κλείσουμε το σημερινό δωρεάν μάθημα Python ας αναφερθούμε σε δύο ακόμα χρήσιμες λειτουργίες που μπορούμε να εκτελέσουμε με τα methods ενός list.

reverse( )

Με το reverse( ) μπορούμε να αντιστρέψουμε την σειρά των elements μέσα στο list.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

premier_league.reverse()
print(premier_league)

Output

['Watford', 'Liverpool', 'Everton', 'Newcastle', 'Aston Villa', 'Chelsea', 'Chelsea', 'Arsenal']

clear( )

Με την clear( ) μπορούμε να διαγράψουμε όλα τα elements μέσα σε ένα list.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

premier_league.clear()
print(premier_league)

Output

[]

del( )

Αντί να ψάχνουμε ένα element με το όνομα του για να το διαγράψουμε, μπορούμε να χρησιμοποιήσουμε το del( ) function το οποίο διαγράφει οποιοδήποτε element είναι στο index που ορίζουμε.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

del premier_league[2]
print(premier_league)

Output

['Arsenal', 'Chelsea', 'Aston Villa', 'Newcastle', 'Everton', 'Liverpool', 'Watford']

Τέλος μπορούμε να μετατρέψουμε πολύ εύκολα ένα list σε string.

app.py

premier_league = ['Arsenal', 'Chelsea', 'Chelsea', 'Aston Villa',
                  'Newcastle', 'Everton', 'Liverpool', 'Watford']

premier_league_string = ",".join(premier_league)
print(premier_league_string)

Output

Arsenal,Chelsea,Chelsea,Aston Villa,Newcastle,Everton,Liverpool,Watford

Μην ξεχάσετε να κάνετε ένα μικρό donationέτσι ώστε αυτό το siteνα μεγαλώσει ακόμα πιο πολύ και να αποκτήσει περισσότερες δυνατότητες onlineπαράδοσης δωρεάν μαθημάτων.

full-width

Post a Comment

0 Comments