bahamut_zero Δημοσ. 7 Ιουνίου 2019 Δημοσ. 7 Ιουνίου 2019 Γεια, εχω μια generic ερωτηση για ενα προβλημα που λυπνω σε Python, αλλα ισως η απαντηση ειναι broader. Υπολογιζω σε μια συναρτηση τις πιθανοτητες για ενα παιχνιδι αναμεσασε 2 παιχτες. Θελω για καφε πιθανοτ σκορ να εχω ενα Output της λογικης key-value. Το προσεγγιζα με dictionary οπου σαν key ειχα το score και σαν value την πιθανοτητα { "1-1": 0.50 } Αν ηθελα κατι αντιστοιχο, αλλα το σκορ της καθε ομαδας να ειναι ξεχωριστη οντοτητα, τι data type θα προτεινατε να χρησιμοποιησω; Πλεον η λογικη key-value γινεται αδοκιμη καθως η αναζητηση θα γινεται παντα συνδυαστικα με 2 keys. Σκεφτηκα εναν 2d matrix, με στηλες player 1, player 2, probability αλλα δεν μου αρεσει. Εχει κανεις καμια ιδεα;
manos89 Δημοσ. 7 Ιουνίου 2019 Δημοσ. 7 Ιουνίου 2019 Γενικά, και αφού έχεις μπει στη λογική key-value, θα σου πρότεινα να δοκιμάσεις κάποια NoSql βάση (MongoDB π.χ.), όπου τα πράγματα θα απλοποιηθούν σε υπερβολικό βαθμό και τα queries που θα χρειάζεσαι θα βγαίνουν πολύ εύκολα. Τώρα δεν είμαι σίγουρος ότι κατάλαβα το πρόβλημά σου, αλλά η σωστή προσέγγιση σε αυτό που έγραψες είναι κάπως διαφορετική. Νομίζω ότι αυτό είναι πιο σωστό [ {"score": "1-1", "odd": 2.2}, {"score": "1-0", "odd": 2.4} ] Γενικά, από όσο ξέρω, το key είναι καλύτερο να είναι σταθερό και γνωστό, οπότε η λύση με τo score σαν key δεν είναι η ενδεδειγμένη
lefwiz Δημοσ. 7 Ιουνίου 2019 Δημοσ. 7 Ιουνίου 2019 (επεξεργασμένο) Σε θεωρητικό επίπεδο μπορείς να κάνεις κάτι τέτοιο def winner(x,y,z): #x []-> first team #y []-> second team #z ()-> initial stats Για παράδειγμα ο τελικός CL θα ήταν winner(Tottenham,Liverpool,(3.20,2.10,1.75)) Άρα θα έχεις δύο λίστες από tuples λόγου χάρη Liverpool = [('0-0',2.10) , ('1-0',1.75)]. Κάθε φορά που αλλάζει το score παίρνεις τις τελευταίες εγγραφές από τις δύο λίστες και υπολογίζεις τις καινούργιες πιθανότητες. Επεξ/σία 7 Ιουνίου 2019 από lefwiz
neo80 Δημοσ. 7 Ιουνίου 2019 Δημοσ. 7 Ιουνίου 2019 Μην κάθεσαι να ασχοληθείς υπάρχουν βιβλιοθήκες για αυτή τη δουλειά. https://pythontips.com/2013/07/30/20-python-libraries-you-cant-live-without/ https://wiki.python.org/moin/UsefulModules Άσε τους άλλους να ασχολούνται με τις βιβλιοθήκες και εγώ και εσύ να τις βρίσκουμε έτοιμες Ελπίζω να βοήθησα.
bahamut_zero Δημοσ. 7 Ιουνίου 2019 Μέλος Δημοσ. 7 Ιουνίου 2019 Καλησπερα, ευχαριστω για τις απαντησεις. Ισως δεν εγινα κατανοητος, θελω κατα καποιο τροπο να εχω 2 keys και να μην εχω το καθε σκορ σαν ενα string (το οποιο εχει προκυψει απο concatenation 2 δεικτων που τρεχουν σε μια διπλη λούπα i,j).
manos89 Δημοσ. 7 Ιουνίου 2019 Δημοσ. 7 Ιουνίου 2019 42 λεπτά πριν, bahamut_zero είπε Καλησπερα, ευχαριστω για τις απαντησεις. Ισως δεν εγινα κατανοητος, θελω κατα καποιο τροπο να εχω 2 keys και να μην εχω το καθε σκορ σαν ενα string (το οποιο εχει προκυψει απο concatenation 2 δεικτων που τρεχουν σε μια διπλη λούπα i,j). Κάτι σαν αυτό score_list = [] for i in range(0, 5): for j in range(0, 5): odds_dict = {"home_score": i, "away_score": j, "odds": 2} score_list.append(odds_dict) [ {"home_score": 1, "away_score": 0, "odds": 2.2}, {"home_score": 1, "away_score": 3, "odds": 3.2} ] Στην ουσία φτιάχνεις ένα list of dictionaries. 1
k33theod Δημοσ. 7 Ιουνίου 2019 Δημοσ. 7 Ιουνίου 2019 Tuples can be used as keys if they contain only strings, numbers, or tuples; https://docs.python.org/3/tutorial/datastructures.html#dictionaries 1 1
Salecon Δημοσ. 8 Ιουνίου 2019 Δημοσ. 8 Ιουνίου 2019 17 ώρες πριν, bahamut_zero είπε Γεια, εχω μια generic ερωτηση για ενα προβλημα που λυπνω σε Python, αλλα ισως η απαντηση ειναι broader. Υπολογιζω σε μια συναρτηση τις πιθανοτητες για ενα παιχνιδι αναμεσασε 2 παιχτες. Θελω για καφε πιθανοτ σκορ να εχω ενα Output της λογικης key-value. Το προσεγγιζα με dictionary οπου σαν key ειχα το score και σαν value την πιθανοτητα { "1-1": 0.50 } Αν ηθελα κατι αντιστοιχο, αλλα το σκορ της καθε ομαδας να ειναι ξεχωριστη οντοτητα, τι data type θα προτεινατε να χρησιμοποιησω; Πλεον η λογικη key-value γινεται αδοκιμη καθως η αναζητηση θα γινεται παντα συνδυαστικα με 2 keys. Σκεφτηκα εναν 2d matrix, με στηλες player 1, player 2, probability αλλα δεν μου αρεσει. Εχει κανεις καμια ιδεα; Εάν η ερώτηση είναι για τι δυνατότητες έχεις στα keys ενός dictionary, τότε η απάντηση είναι στο link που δόθηκε αλλά όχι αυτή που παρατέθηκε. Η πλήρης απάντηση είναι: Αναφορά σε κείμενο Unlike sequences, which are indexed by a range of numbers, dictionaries are indexed by keys, which can be any immutable type; strings and numbers can always be keys Δηλαδή, μπορείς να χρησιμοποιήσεις οποιαδήποτε μεταβλητή ως key, αρκεί να μην είναι mutable object, ούτε η ίδια αλλά ούτε και τα μέλη της (π.χ. tuple που έχει μέσα list δεν κάνει). Όμως, ο πιο pythonic τρόπος θα ήταν να έχεις έναν generator ή function και να σου γυρίζει την τιμή που θες, ή (εάν θέλεις να μείνεις με __getitem__ ) να χρησιμοποιήσεις namedtuple.
bahamut_zero Δημοσ. 8 Ιουνίου 2019 Μέλος Δημοσ. 8 Ιουνίου 2019 3 ώρες πριν, Salecon είπε Εάν η ερώτηση είναι για τι δυνατότητες έχεις στα keys ενός dictionary, τότε η απάντηση είναι στο link που δόθηκε αλλά όχι αυτή που παρατέθηκε. Η πλήρης απάντηση είναι: Δηλαδή, μπορείς να χρησιμοποιήσεις οποιαδήποτε μεταβλητή ως key, αρκεί να μην είναι mutable object, ούτε η ίδια αλλά ούτε και τα μέλη της (π.χ. tuple που έχει μέσα list δεν κάνει). Όμως, ο πιο pythonic τρόπος θα ήταν να έχεις έναν generator ή function και να σου γυρίζει την τιμή που θες, ή (εάν θέλεις να μείνεις με __getitem__ ) να χρησιμοποιήσεις namedtuple. Εστω ενα τετοιο dictionary με keys tuples . Αυτο μπορει να γινει export σε json? Εκει υποστηριζεται μια τετοια λογικη στα key-values?
Salecon Δημοσ. 8 Ιουνίου 2019 Δημοσ. 8 Ιουνίου 2019 2 ώρες πριν, bahamut_zero είπε Εστω ενα τετοιο dictionary με keys tuples . Αυτο μπορει να γινει export σε json? Εκει υποστηριζεται μια τετοια λογικη στα key-values? Δεν έχω καταλάβει ποια είναι αυτή η λογική.
k33theod Δημοσ. 8 Ιουνίου 2019 Δημοσ. 8 Ιουνίου 2019 (επεξεργασμένο) 7 ώρες πριν, bahamut_zero είπε Εστω ενα τετοιο dictionary με keys tuples . Αυτο μπορει να γινει export σε json? Εκει υποστηριζεται μια τετοια λογικη στα key-values? To json είναι string αναπαράσταση js object. Στην js δεν υπάρχουν tuples !!! Μπορείς να προσπαθήσεις Δες την τελευταία γραμμή από την αναφορά σφάλματος. >>> probs = {(1,1):0.2, (0,1):0.1,(1,0):0.7} >>> import json >>> json.dumps(probs) Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> json.dumps(probs) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\json\__init__.py", line 231, in dumps return _default_encoder.encode(obj) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\json\encoder.py", line 199, in encode chunks = self.iterencode(o, _one_shot=True) File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\json\encoder.py", line 257, in iterencode return _iterencode(o, 0) TypeError: keys must be str, int, float, bool or None, not tuple >>> Επεξ/σία 8 Ιουνίου 2019 από k33theod 1
pmav99 Δημοσ. 10 Ιουνίου 2019 Δημοσ. 10 Ιουνίου 2019 On 08/06/2019 at 14:48, bahamut_zero said: Εστω ενα τετοιο dictionary με keys tuples . Αυτο μπορει να γινει export σε json? Εκει υποστηριζεται μια τετοια λογικη στα key-values? Το json υποστηρίζει συγκεκριμένα data types. Για να κάνεις export σε json ένα arbitrary python object πρέπει με κάποιο τρόπο να το κάνεις serialize. Για το serialization μπορείς να χρησιμοποιήσεις κάτι σαν το mashmallow: https://github.com/marshmallow-code/marshmallow 1
albNik Δημοσ. 10 Ιουνίου 2019 Δημοσ. 10 Ιουνίου 2019 Στις 7/6/2019 στις 4:04 ΜΜ, bahamut_zero είπε Γεια, εχω μια generic ερωτηση για ενα προβλημα που λυπνω σε Python, αλλα ισως η απαντηση ειναι broader. Υπολογιζω σε μια συναρτηση τις πιθανοτητες για ενα παιχνιδι αναμεσασε 2 παιχτες. Θελω για καφε πιθανοτ σκορ να εχω ενα Output της λογικης key-value. Το προσεγγιζα με dictionary οπου σαν key ειχα το score και σαν value την πιθανοτητα { "1-1": 0.50 } Αν ηθελα κατι αντιστοιχο, αλλα το σκορ της καθε ομαδας να ειναι ξεχωριστη οντοτητα, τι data type θα προτεινατε να χρησιμοποιησω; Πλεον η λογικη key-value γινεται αδοκιμη καθως η αναζητηση θα γινεται παντα συνδυαστικα με 2 keys. Σκεφτηκα εναν 2d matrix, με στηλες player 1, player 2, probability αλλα δεν μου αρεσει. Εχει κανεις καμια ιδεα; Μια χαρα ειναι το key-value που εχεις. Αυτο που θα μπορουσες αν προσθεσεις ειναι μια συναρτηση παραγωγης του (μοναδικου) key: (σκορA, σκορΒ)=>key. 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα