spanoskostas Δημοσ. 10 Απριλίου 2017 Δημοσ. 10 Απριλίου 2017 Καλησπέρα σας μπορεί να με βοηθήσει κάποιος for key in datamenu: if type(datamenu[key])==dict: for key in datamenu[key]: print key list comprehension: [datamenu[key] for key in datamenu if type(datamenu[key])==dict for key in datamenu[key]] Ευχαριστω
spanoskostas Δημοσ. 11 Απριλίου 2017 Μέλος Δημοσ. 11 Απριλίου 2017 δεν πρέπει να είναι σωστή η μετατροπή που έχω κάνει σε list comprehension
k33theod Δημοσ. 11 Απριλίου 2017 Δημοσ. 11 Απριλίου 2017 Θες να κάνεις τον πάνω κώδικα με list comprehension; πάνω γράφεις print (key) και κάτω datamenu[key] τι θες να έχει η λίστα σου ως στοιχεία αν θες μόνο τα κλειδιά κάνε το comprehension [key for key in datamenu if type(datamenu[key])==dict for key in datamenu[key]]
Ilias95 Δημοσ. 11 Απριλίου 2017 Δημοσ. 11 Απριλίου 2017 Η σύνταξη είναι έτσι: [i for i in l1 for j in l2 if whatever]
k33theod Δημοσ. 11 Απριλίου 2017 Δημοσ. 11 Απριλίου 2017 Ο γενικός κανόνας που περιγράφεται πως τα κάνουμε είναι [expression for ... ακολουθούμενα από fors ή ifs] https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions Μπορούμε να γράψουμε δηλαδή κάτι τέτοιο [math.sqrt((a**2)+(b**2)) for a in c if ( a < 10 and len (c)>20) for b in d if b>100 ] και ότι άλλο χαζό σκεφτούμε και η μετάφρασή του σε κώδικα είναι mylist=[] for a in c: if (a<10 and len(c)>20): for b in d: if b>100: mylist.append(math.sqrt((a**2)+(b**2)) )
pmav99 Δημοσ. 11 Απριλίου 2017 Δημοσ. 11 Απριλίου 2017 @spanoskostas Δεν χρειάζεσαι nested list comprehensions datamenu = {1: 1, 2: 2, 3: {"a": 1, "b": 2}, 4: {"q": 1, "w": 2}} for key, value in datamenu.items(): if isinstance(value, dict): print("\n".join(value.keys())) ή [print("\n".join(value.keys())) for (key, value) in datamenu.items() if isinstance(value, dict)] ΥΓ. Εγώ θα το έγραφα με loop, ιδίως αν με ενδιέφερε η εκτύπωση και δεν έκανα κάτι με τη λίστα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα