2017-11-02 1 views
1

Ich habe eine Liste von Tupeln wie folgt aussehen:Wie kann ich Werte in einer Liste in Python aktualisieren?

[(5, 0, 1, 8), (5, 0, 1, 14, 15), (5, 0, 1, 14, 16)] 

ich auch ein Wörterbuch, die in der Form ist:

{0: [], 1: [], 2: [], 3: [], 4: [], 5: ['CVE-2016-3379'], 7: ['CVE-2016-3646'], 8: [], 9: ['CVE-2015-1769'], 10: ['CVE-2016-3364', 'CVE-2016-7193', 'CVE-2016-3363'], 14: [], 15: ['CVE-2015-1769'], 16: ['CVE-2016-3363', 'CVE-2016-7193', 'CVE-2016-3364'], 17: [], 18: [], 19: [], 20: [], 21: ['CVE-2015-1769'], 22: ['CVE-2016-3363', 'CVE-2016-7193', 'CVE-2016-3364'], 26: [], 27: [], 28: [], 29: [], 30: [], 32: []} 

Wie kann ich mit den Werten, die Werte in der ersten Liste aktualisieren aus dem Wörterbuch?

Ich möchte 5 zum Beispiel 5: ['CVE-2016-3379'] werden, 0 werden 0: [] usw.

+0

Zeigen Sie uns, was Sie haben bereits versucht. SO ist kein Code-Schreibdienst. –

+0

Bitte legen Sie diese Information in Ihre Frage, wo sie hingehört. Und es macht keinen Sinn, mehrzeiligen Python-Code in Kommentare zu schreiben, da der Einzug verloren geht. –

+0

Vielen Dank für die Antwort. Dies ist keine Programmierhilfe, es ist ein Teil eines Projekts, das vertraulich ist und meine Python-Fähigkeiten sind nicht so toll. – Nick

Antwort

3

können Sie tun das mit diesem list comprehension:

res = [tuple('{}: {}'.format(i, my_dict[i]) for i in t) for t in my_list] 

Ausgabebeispiel:

>>> my_list = [(5, 0, 1, 8)] 
>>> my_dict = {0: [], 1: [], 5: ['CVE-2016-3379'], 8: []} 
>>> res = [tuple('{}: {}'.format(i, my_dict[i]) for i in t) for t in my_list] 
>>> res 
[("5: ['CVE-2016-3379']", '0: []', '1: []', '8: []')] 
+1

Es ist durchaus möglich, dass dies das ist, was das OP durch seine gewünschte Ausgabe bedeutet :) – schwobaseggl

1

Angesichts Ihrer list wird lst genannt und die dict wird dct genannt, erhalten Sie folgende verschachtelte Verständnis verwenden können:

lst = [tuple(dct[x] for x in tpl) for tpl in lst] 

Da die Tupel in Ihrem list unveränderlich sind, können Sie nicht nur ihre Zellen aktualisieren. Sie müssen sie mit den neuen Werten neu erstellen.

Verwandte Themen