Λοιπόν αναφέρω παράδειγμα (και εν μέρει λύση):
- Κώδικας: Επιλογή όλων
>>> lista11 = ['μήλα', 'αχλάδια', 'αγγούρια', 'μπανάνες', 'κιτρόμηλα']
>>> lista11
['μήλα', 'αχλάδια', 'αγγούρια', 'μπανάνες', 'κιτρόμηλα']
Παίρνουμε το αντικείμενο 0 (επιστρέφεται ως
TEXT STRING, όχι λίστα)
- Κώδικας: Επιλογή όλων
>>> print("Το αντικείμενο στη θέση 0 είναι: " + lista11[0])
Το αντικείμενο στη θέση 0 είναι: μήλα
>>> type(lista11[0])
<class 'str'>
>>> print("Το αντικείμενο στη θέση 1 είναι: " + lista11[1])
Το αντικείμενο στη θέση 1 είναι: αχλάδια
- Κώδικας: Επιλογή όλων
>>> # Το ακόλουθο είναι ΛΑΘΟΣ
>>> print("Τα αντικείμενα από τη θέση 0 μέχρι τη θέση 1 (ΜΗ ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΟΥ) είναι: " + lista11[0:1])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'list' object to str implicitly
>>> # Το ακόλουθο είναι το ΣΩΣΤΟ, με το " ".join()
>>> print("Τα αντικείμενα από τη θέση 0 μέχρι τη θέση 1 (ΜΗ ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΟΥ) είναι: " + " ".join(lista11[0:1]))
Τα αντικείμενα από τη θέση 0 μέχρι τη θέση 1 (ΜΗ ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΟΥ) είναι: μήλα
>>> # Το ακόλουθο επίσης μπορεί να χρησιμοποιηθεί, με το str()
>>> # Παίρνουμε μόνο το αντικείμενο 0 (ως αντικείμενο λίστας)
>>> print("Τα αντικείμενα από τη θέση 0 μέχρι τη θέση 1 (ΜΗ ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΟΥ) είναι: " + str(lista11[0:1]))
Τα αντικείμενα από τη θέση 0 μέχρι τη θέση 1 (ΜΗ ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΟΥ) είναι: ['μήλα']
Για να συγκρίνετε, παραθέτω ξανά τις
διαφορές στον τύπο των τιμών lista11[0:1] και lista11[0] που πήρατε:
- Κώδικας: Επιλογή όλων
>>> type(lista11[0:1])
<class 'list'>
>>> type(lista11[0])
<class 'str'>
Τα αντικείμενα 0 και 1:
- Κώδικας: Επιλογή όλων
>>> print("Τα αντικείμενα από τη θέση 0 μέχρι τη θέση 2 (ΜΗ ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΟΥ) είναι: " + str(lista11[0:2]))
Τα αντικείμενα από τη θέση 0 μέχρι τη θέση 2 (ΜΗ ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΟΥ) είναι: ['μήλα', 'αχλάδια']
Αφού το [0:1] συμβολίζει ΛΙΣΤΑ, μπορούμε να το εκμεταλλευτούμε για να μετατρέψουμε τη λίστα και να προσθέσουμε αντικείμενο:
>>> lista11
['μήλα', 'αχλάδια', 'αγγούρια', 'μπανάνες', 'κιτρόμηλα']
>>> lista11[0:1]
['μήλα']
>>> lista11[0:1] = ['μήλα', 'πατάτες']
>>> lista11
['μήλα', 'πατάτες', 'αχλάδια', 'αγγούρια', 'μπανάνες', 'κιτρόμηλα']
Γιατί
ΟΧΙ lista11[0]; Επειδή συμβολίζει ένα μόνο αντικείμενο της λίστας και θα πάρετε ως αντικείμενο
υπολίστα:
>>> lista11 = ['μήλα', 'αχλάδια', 'αγγούρια', 'μπανάνες', 'κιτρόμηλα']
>>> lista11[0] = ['μήλα', 'πατάτες']
>>> lista11
[['μήλα', 'πατάτες'], 'αχλάδια', 'αγγούρια', 'μπανάνες', 'κιτρόμηλα']