Für eine Übung muss ich eine kleinste Teilmenge von Proteomen bestimmen, die alle gegebenen Proteine enthalten. Die Objekte, mit denen ich arbeiten kann, sehen so aus:Suche nach einer minimalen Teilmenge von Schlüsseln aus einem Listenwörterbuch
Ein Wörterbuch mit Listen, das die Proteom-ID als Schlüssel und eine Liste von Protein-IDs von Proteinen enthält, die darin enthalten sind. Ich habe auch eine Reihe von Protein-IDs. Mehrere Proteome können die gleichen Protein-IDs haben.
Frage: Finden Sie die kleinste Untergruppe von Proteomen, die alle im Array deklarierten Proteine enthält.
Visualisierung:
Wörterbuch der Listen
{'UP000040088': ['A0A0T9TGA2', 'A0A0T9PBK6'],'UP000005347': ['I2WKK5', 'I2W7Q9', 'I2WH23', 'I2W8G3', 'I2W8S8', 'I2WCH8', 'I2WCJ2', 'I2WA21', 'I2WC26', 'I2WCG9', 'I2W9F2', 'I2WKG5', 'I2W4G7', 'I2WCD6', 'I2WG92', 'I2W6I6', 'I2W648', 'I2WE51', 'I2WKU2', 'I2WIG4', 'I2WED9', 'I2WEM0', 'I2WB05', 'I2W998', 'I2W7Q9', 'I2WA37', 'I2WD89', 'I2WEB4', 'I2W4G7', 'I2W4B1', 'I2WIM9', 'I2WI84', 'I2WIS6', 'I2WES7', 'I2WGL9', 'I2WIA8', 'I2W7H0', 'I2WDB3', 'I2WE60', 'I2WC93', 'I2WC36', 'I2WC86', 'I2WC82', 'I2W6J9', 'I2W428', 'I2WCH8', 'I2WCJ2', 'I2W9T1', 'I2W9B9', 'I2WC26', 'I2WCG9', 'I2WA28', 'I2WA21', 'I2W648', 'I2WE51', 'I2WKU2', 'I2WIG4', 'I2WEM0', 'I2WED9', 'I2W9F2'], 'UP000001592': ['A9IMD2', 'A9IU64', 'A9IWM9', 'A9IWP5', 'A9IZ28', 'A9IZ30', 'A9IZ48', 'A9IZ71', 'A9IZ73', 'A9IZ75']}
Array
['A9IWM9', 'A9IWP5','A0A0T9PBK6']
Die Ausgabe sollte in diesem Beispiel sein
'UP000040088':['A0A0T9PBK6'],'UP000001592':['A9IWM9', 'A9IWP5']
freundlichen Grüßen
Was haben Sie schon versucht? Treten beim Codieren Probleme auf? Nach der Arbeitslösung zu fragen ist nicht das, was SO für –
ist, und ich habe eine gierige Methode ausprobiert, die das Array iteriert und nach dem ersten Schlüssel mit dem richtigen Wert sucht. Dies wird mir jedoch offensichtlich nicht die kleinere Teilmenge und nicht nur eine Teilmenge geben. Ich möchte einige Ideen bekommen, wie ich dieses Problem angehen kann. – user3620381