Θα ξεκινήσω από τον ορισμό του res
res = [tuple('{}: {}'.format(i, new_dict) for i in t) for t in a]
Όπως επισήμανε και ο Theo, είναι list, οπότε δεν ταιριάζει με αυτό που λες ότι θέλεις να παράγεις, δηλαδή tuple.
Θα προσπαθήσω να δω αν καταλαβαίνω αυτό που θέλεις να πεις, αγνοώντας το προηγούμενο σχόλιο.
Η λίστα
a είναι μία λίστα από λίστες
a = [[5, 0, 1, 8], [1, 10, 11, 13], ...]
Το dictionary
mydict είναι κάπως έτσι
mydict = {5: ['CVE-2016-3379', 'CVE-2015-3363', 'CVE-2014-3332'],
0: [],
1: [],
8: ['CVE-2015-3367],
...}
Όταν λες
Εγώ θέλω μέσα στο new_dict να έχω 3 entries με id 5. Δηλ 5:cve1, 5:cve2, 5:cve3
μάλλον θέλεις να πεις, ότι θέλεις το
res να έχει τέτοια μορφή, σωστά;
Αυτό λοιπόν που θες είναι
[("5:[CVE-2016-3379], 5:[CVE-2015-3363], 5:[CVE-2014-3332]", '0:[]', '1:[]', "8:[CVE-2015-3367]"),
("1: [CVE-...]", ...),
... ]
όπου τα κλειδιά 0 και 1 στο
mydict είχαν για τιμή άδειες λίστες [] (δηλαδή δεν υπήρχαν καθόλου CVE για αυτά.
Καλά το έχω καταλάβει μέχρι εδώ;
Αν ναι λοιπόν συμφωνούμε στο ζητούμενο, τότε το res θα δίνεται από
res = [tuple(' '.join(['{}: [{}]'.format(i, cev)
for cev in mydict[i]]) or '{}: []'.format(i)
for i in path)
for path in a]
Κλείνοντας, θα ήθελα, πολύ φιλικά, να σου δώσω κάποιες συμβουλές για το πως θα κάνεις σωστά μια ερώτηση σε ένα φόρουμ.
1. Προσπάθησε, όσο μπορείς καλύτερα, να εξηγείς ποια είναι τα δεδομένα και ποιό είναι το ζητούμενο. Εσύ μπορείς έχεις στο μυαλό σου όλες τις λεπτομέρειες ενός προβλήματος, αλλά κάποιος που δεν γνωρίζει τίποτα για το πρόβλημα, θα χρειαστεί τα δύο στοιχεία που προανέφερα. Σκέψου ότι όσοι θα θελήσουν να βοηθήσουν, θα ξοδεψουν από τον χρόνο τους, οπότε προσπάθησε αυτός ο χρόνος να είναι όσο το δυνατόν πιο λίγος και πιο εποικοδομητικός. Πχ, θα χαρώ πολύ να αφιερώσω χρόνο για να σε βοηθήσω σε ένα πρόβλημα που αντιμετωπίζεις, αλλά θα σκεφτώ πολύ να το κάνω αν από τη μεριά σου δεν με βοηθάς να καταλάβω το ίδιο το πρόβλημα.
2. Στο φόρουμ υπάρχουν εργαλεία για να συντάσεις κώδικα και να αναφέρεσαι σε λόγια που είπαν άλλα μέλη στο νήμα. Χρησιμοποίησέ τα. Θα κάνεις το κείμενο πολύ πιο ευανάγνωστο και θα βοηθήσεις πολύ το μέλος (η τα μέλη) που θα αφιερώσουν χρόνο για να σου προτείνουν μια λύση.
Ελπίζω να ήμουν κατατοπιστικός.