masteripper Δημοσ. 13 Σεπτεμβρίου 2022 Δημοσ. 13 Σεπτεμβρίου 2022 (επεξεργασμένο) Γεια χαρά σε όλους. Ψάχνω 1 σπάσιμο λίστας (το οποίο μπορεί να γίνει με Loop απλώς λέω μήπως το αποφύγω) το οποίο να επιστρέφει υπολίστες ιδίου μήκους αλλά να μην επαναλαμβάνονται τα στοιχεία στην υπολίστα π.χ [93, 69, 29, 30, 78, 97, 66, 19, 19] Η ανωτέρω λίστα θέλω να την σπάσω σε 3 (χ) υπολίστες αλλά απαραίτητα η υπολίστα να μην έχει διπλά π.χ [93,69,19] [29,30,78] [66,19,97] Το σπάσιμο θα είναι δυναμικό δλδ δεν θα πηγαίνει με την σειρά....εκτός αν είναι αναγκαίο (το οποίο θα με αναγκασει να κάνω 1 επιπλέον σορτάρισμα) Επεξ/σία 13 Σεπτεμβρίου 2022 από masteripper
archer100 Δημοσ. 13 Σεπτεμβρίου 2022 Δημοσ. 13 Σεπτεμβρίου 2022 Ενας τροπος με χρηση βιβλιοθηκων: Χωρις βιβλιοθηκες δε νομιζω πως μπορεις να αποφυγεις τα loops from collections import Counter import random l = [93, 69, 29, 30, 78, 97, 66, 19, 19] d = dict(Counter(l)) res = [] while True: new = random.sample(d.keys(), 3) res.append(new) for x in new: d[x] -= 1 d = {k:v for k, v in d.items() if v!=0} if len(d)==0: break print(res) #[[93, 66, 97], [29, 19, 69], [78, 30, 19]] 1
masteripper Δημοσ. 14 Σεπτεμβρίου 2022 Μέλος Δημοσ. 14 Σεπτεμβρίου 2022 Δυστυχως χωρίς loop δεν βγαίνει...ήλπιζα σε κανένα κολπάκι base_list = [93,69,29,30,78,97,66,19,19] list_of_lists = list(zip(*(iter(base_list),) * 3)) loop_condition = True while loop_condition: i=1 for sublist in list_of_lists: if len(sublist) == len(set(sublist)): if i == len(list_of_lists): loop_condition = False i += 1 pass else: random.shuffle(base_list) list_of_lists = list(zip(*(iter(base_list),) * 3)) break 2
k33theod Δημοσ. 14 Σεπτεμβρίου 2022 Δημοσ. 14 Σεπτεμβρίου 2022 Το πρόβλημα να πω την αλήθεια δεν το κατάλαβα καθόλου και το αυθαίρετο παράδειγμα με μπέρδεψε. Γιατί θες παραδείγματος χαρίν 3 υπολίστες και όχι 2, είναι τυχαίο ότι η λίστα σου έχει αριθμό στοιχείων πολλαπλάσιο του 3? Γενικά όμως όταν έχουμε να κάνουμε με πολλά δεδομένα και θέλουμε να τα προσπελάσουμε υπάρχουν 2 τρόποι οι λούπες for, while klp και η αναδρομή. Η συνάρτηση δηλαδή καλεί τον εαυτό της. 1
masteripper Δημοσ. 15 Σεπτεμβρίου 2022 Μέλος Δημοσ. 15 Σεπτεμβρίου 2022 17 ώρες πριν, k33theod είπε Το πρόβλημα να πω την αλήθεια δεν το κατάλαβα καθόλου και το αυθαίρετο παράδειγμα με μπέρδεψε. Γιατί θες παραδείγματος χαρίν 3 υπολίστες και όχι 2, είναι τυχαίο ότι η λίστα σου έχει αριθμό στοιχείων πολλαπλάσιο του 3? Γενικά όμως όταν έχουμε να κάνουμε με πολλά δεδομένα και θέλουμε να τα προσπελάσουμε υπάρχουν 2 τρόποι οι λούπες for, while klp και η αναδρομή. Η συνάρτηση δηλαδή καλεί τον εαυτό της. Ναι η αναδρομή είναι η 2η λύση απλώς είναι λίγο πιο κουραστική στην ιχνηλάτηση. Πάντως με την λούπα επειδή την δοκίμασα σε όλες τις εκδοχές δουλεύει όπως πρέπει
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα