Ich bin absoluter Python-Neuling und quäl mich schon geraume Zeit mit folgendem Problem.
Ich habe eine Datei aus der ich ein Dictionary erstellen soll auf dass man dann zugreifen kann und dem Benutzer wird dann einen Summe ausgegeben.
Im Prinzip nicht schwer aber ich bekomm das mit dem verschachtelten Dict einfach nicht hin!
Also wenn ich die Liste mit:
Code: Alles auswählen
for line in pM.readlines():
line = line.rstrip()
data = line.split(',')
print(data)
['Element', 'Isotope', 'Monoisotopic mass', 'Natural abundance']
['C', '12', '12.0', '0.9893']
['C', '13', '13.0033548378', '0.0107']
['C', '14', '14.003241988', '0.0']
['H', '1', '1.0078250321', '0.999885']
['H', '2', '2.014101778', '0.000115']
['H', '3', '3.0160492675', '0.0']
['N', '14', '14.0030740052', '0.99632']
['N', '15', '15.0001088984', '0.00368']
['O', '16', '15.9949146221', '0.99757']
['O', '17', '16.9991315', '0.00038']
['O', '18', '17.9991604', '0.00205']
['S', '32', '31.97207069', '0.9493']
['S', '33', '32.9714585', '0.0076']
['S', '34', '33.96786683', '0.0429']
['S', '36', '35.96708088', '0.0002']
Und nun ist mein Ziel dass ich folgendes Dict bekomme:
{'C':{12,13,14},'H':{1,2,3,}........}
Wenn ich das damit versuch:
Code: Alles auswählen
if data[0] not in pMDict:
pMDict [data[0]] = {data[1]}
elif data[0] in pMDict:
pMDict [data[0]] = {data[1]}
print (pMDict)
Ich könnte natrülich über mehrere Schleifen verschiedene Dictionarys erstellen und die dann wieder zusammenfügen, aber das erscheint mir dann doch etwas zu umständlich.
Vielleich kannt mir ja jemand von euch helfen:
Bisher sieht das ganze Prog. so aus:
Code: Alles auswählen
import csv
import math
pM = open ("isotopes.csv") # öffnet die Datei mit den Atommassen
pMDict = {} #pM = physikalische Massen
zeile = []
for line in pM.readlines():
line = line.rstrip()
data = line.split(',')
print(data)
if data[0] not in pMDict:
pMDict [data[0]] = {data[1]}
elif data[0] in pMDict:
pMDict [data[0]] = {data[1]}
print (pMDict)
Mary