onarcp Δημοσ. 13 Ιανουαρίου 2023 Δημοσ. 13 Ιανουαρίου 2023 Καλησπέρα σας, θα ήθελα βοήθεια σε ένα πρόγραμμα. Έχω μια list of tuples, η οποία περιέχει duplicated tuples, η ερώτηση είναι πως μπορώ να δημιουργήσω μια καινούργια λίστα πλειάδων με το πρώτο element κάθε πλειάδας και πόσες φορές εμφανίζεται. Σας ευχαριστώ εκ των προτέρων.
archer100 Δημοσ. 13 Ιανουαρίου 2023 Δημοσ. 13 Ιανουαρίου 2023 37 λεπτά πριν, onarcp είπε Καλησπέρα σας, θα ήθελα βοήθεια σε ένα πρόγραμμα. Έχω μια list of tuples, η οποία περιέχει duplicated tuples, η ερώτηση είναι πως μπορώ να δημιουργήσω μια καινούργια λίστα πλειάδων με το πρώτο element κάθε πλειάδας και πόσες φορές εμφανίζεται. Σας ευχαριστώ εκ των προτέρων. Αυτο που θελεις γινεται με μια γραμμη κωδικα μονο, αλλα επειδη μαλλον προκειται για ασκηση, καλυτερο ειναι να το προσπαθησεις μονος σου
onarcp Δημοσ. 13 Ιανουαρίου 2023 Μέλος Δημοσ. 13 Ιανουαρίου 2023 Το πρόβλημα μου είναι στη for, πρέπει να συγκρίνω το 1ο element από κάθε πλειάδα και να δω πως φορές υπάρχει. Πιστεύω ότι είναι κάτι πολύ εύκολο αλλά για κάποιο λόγο δεν μπορώ να το βρω. Δε θέλω να το κάνω με Counter, που όντως είναι εύκολο. πχ. from collections import Counter Counter(elem[0] for elem in list1)
SOADNICK Δημοσ. 13 Ιανουαρίου 2023 Δημοσ. 13 Ιανουαρίου 2023 4 λεπτά πριν, onarcp είπε Το πρόβλημα μου είναι στη for, πρέπει να συγκρίνω το 1ο element από κάθε πλειάδα και να δω πως φορές υπάρχει. Πιστεύω ότι είναι κάτι πολύ εύκολο αλλά για κάποιο λόγο δεν μπορώ να το βρω. Δε θέλω να το κάνω με Counter, που όντως είναι εύκολο. πχ. from collections import Counter Counter(elem[0] for elem in list1) Μέσα στην for και πριν το if (μεταξύ γραμμών 6-7), κάνε ένα print αυτά που συγκρίνεις, δηλαδή το ```item``` και το ```list1[0]```.
archer100 Δημοσ. 13 Ιανουαρίου 2023 Δημοσ. 13 Ιανουαρίου 2023 (επεξεργασμένο) Το επιθυμητο αποτελεσμα ετσι οπως το περιεγραψες ειναι λιγο ασαφες: "πως μπορώ να δημιουργήσω μια καινούργια λίστα πλειάδων με το πρώτο element κάθε πλειάδας και πόσες φορές εμφανίζεται" Αυτο που ζητας ειναι ειτε μια λιστα με πλειαδες οπου το πρωτο στοιχειο θα περιεχει το ιτεμ και το δευτερο τη συχνοτητα του, ειτε καποια αλλη δομη, πχ εναν καταλογο με κλειδι το ιτεμ και τιμη τη συχνοτητα. Για το πρωτο, μπορεις να κανεις το παρακατω: list1 = [('2022', 'value', 'value'), ('2022', 'value', 'value'), ('2010', 'value', 'value')] result = [] items = set(i[0] for i in list1) for i in items: count = 0 for k in list1: if k[0]==i: count += 1 result.append((i, count)) >>>print(result) [('2022', 2), ('2010', 1)] Εαν ολα τα value ειναι ομοια για καθε ιδιο πρωτο στοιχειο, μπορει να γινει και σε μια γραμμη με τον παρακατω τροπο: result = [(i, list1.count(i)) for i in set(list1)] Επεξ/σία 13 Ιανουαρίου 2023 από archer100
onarcp Δημοσ. 13 Ιανουαρίου 2023 Μέλος Δημοσ. 13 Ιανουαρίου 2023 (επεξεργασμένο) 31 λεπτά πριν, archer100 είπε Καταρχην τα επιθυμητο αποτελεσμα ετσι οπως το περιεγραψες ειναι ασαφες: "πως μπορώ να δημιουργήσω μια καινούργια λίστα πλειάδων με το πρώτο element κάθε πλειάδας και πόσες φορές εμφανίζεται" Αυτο που ζητας ειναι ειτε μια λιστα με πλειαδες οπου το πρωτο στοιχειο θα περιεχει το ιτεμ και το δευτερο τη συχνοτητα του, ειτε καποια αλλη δομη, πχ εναν καταλογο με κλειδι το ιτεμ και τιμη τη συχνοτητα. Για το πρωτο, μπορεις να κανεις το παρακατω: list1 = [('2022', 'value', 'value'), ('2022', 'value', 'value'), ('2010', 'value', 'value')] result = [] items = set(i[0] for i in list1) for i in items: count = 0 for k in list1: if k[0]==i: count += 1 result.append((i, count)) >>>print(result) [('2022', 2), ('2010', 1)] Σε ευχαριστώ πολύ, κάποιες από τις φορές που το προσπάθησα είχα βάλει εμφωλευμένη for i,j αλλά για το list1 μόνο, δεν σκέφτηκα καθόλου να χρησιμοποιήσω σύνολα(set). Σας ευχαριστώ και τους δύο για τη βοήθεια σας! Καλή συνέχεια! Επεξ/σία 13 Ιανουαρίου 2023 από onarcp
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα