Δημοσιεύτηκε: 01 Δεκ 2014, 02:46
από Tassos10
Ναι ναι καταρχήν σε ευχαριστώ πάρα πολύ για την ευγενική σου παρατήρηση, θεώρησες πως μπορεί να έκανα κάτι τέτοιο λάθος και μου το επισήμανες, να σε καλά. Νομίζω όμως πως από αυτό το στάδιο λαθών έχω ξεφύγει ( αν και πάντα πιστεύω κάποιος μπορεί να πέσει ακόμη και σε πολύ χαζά λάθη ανεξάρτητα της εμπειρίας ), ξέρω πως γενικά δεν είναι σωστό και ούτε επιτρέπετε να δηλώνουμε δεσμευμένα ονόματα, απλώς τώρα έκανα ένα πάρα πολύ γρήγορο και απλό παράδειγμα που με συγχωρείτε ( με το δίκιο σας όπως είπα μου κάνετε μια τέτοια πολύ σωστή παρατήρηση ).

Πάντως με βοήθησες στο να συμπεράνω καλύτερα το χαζό που έκανα :
Μορφοποιημένος Κώδικας: Επιλογή όλων
>>> e = [[] * 5] * 5

>>> e1 = [ [] ] * 5

>>> print(e)
[[], [], [], [], []]
>>> print(e1)
[[], [], [], [], []]

Όντως αφού δηλώνω πως το περιεχόμενο είναι λίστα κάνει το περιεχόμενο επί πόσες φορές, ήταν πλεονασμός αυτό που έκανα. :mrgreen: ( Και ίσος τελικά τώρα που το σκέφτομαι έτσι όπως το έκανα να μπερδεύει κιόλας. )

Όμως αυτό :
Μορφοποιημένος Κώδικας: Επιλογή όλων
a = [ []*3 ] * 5
>>> print(a)
[ [], [], [], [], [] ]


Ή καλύτερα :
Μορφοποιημένος Κώδικας: Επιλογή όλων
a = [ [0]*3 ] * 5
>>> print(a)
[ [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0] ]

>>> a[2][2] = 1 # Αν κάνω αυτό όμως, κοιτάτε τι κάνει.. πάει ΠΑΝΤΟΎ και βάζει στη 3 θέση των εσωτερικών λιστών άσο (1) .. :/
>>> print(a)
[ [0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 0, 1] ]


Αν θέλω δηλαδή να πω, μια λίστα που η κάθε θέση της να έχει μια άλλη λίστα που όλες αυτές οι εσωτερικές λίστες να αποτελούνται από τόσα στοιχεία -συγκεκριμένα- ( π.χ. 3 τώρα είπα ), πως γίνεται τώρα να πάω σε αυτή την λίστα και να πω, συγκεκριμένα στη θέση - λίστα 5 πήγαινε και βάλε σε αυτή την λίστα στην συγκεκριμένη θέση ( της εσωτερικής λίστας ) μια τιμή ;

Όπως πήγα να το κάνω εγώ μου έβγαλε λάθος αποτέλεσμα. :(
Ήθελα να πάω στην θέση της λίστας "a" και σε αυτή την θέση, εφόσον και εκεί υπάρχει μια λίστα, πήγαινε και βάλε σε αυτή την εσωτερική λίστα στην 3 θέση ( δείκτης 2 ) μια τιμή. Αυτό το θέλω μόνο για μια λίστα - θέση της λίστας, όχι όπως βλέπετε να πάει και να το κάνει σε όλες. :(
Ήθελα δηλαδή κάτι τέτοιο :
Κώδικας: Επιλογή όλων
[ [0, 0, 0], [0, 0, 0], [0, 0, 1], [0, 0, 0], [0, 0, 0] ]