Ich verwende Python2.7. Ich habe eine Datei, die einen Chromosomenort und eine Experiment-ID enthält. Ich habe diese Informationen zur Zeit in zwei Listen gespeichert bekam:Erstellen Sie ein Wörterbuch, das Listen zugeordnet ist, und aktualisieren Sie dies über eine Schleife
unique_locations - containing a single value for each location
location_exp - containing lists of [location, experiment]
Der Grund, warum ich nicht ein Wörterbuch verwendet haben, ist, dass es mehrere Standorte in mehreren Experimenten gefunden - das heißt das eine viele-viele-Beziehung ist.
Ich möchte herausfinden, wie viele Experimente jeder Standort gefunden wird. D.h erhalten eine Liste wie:
[
[location1, [experiment1, experiment2, experiment3]],
[location2, [experiment2, experiment3, experiment4]]
]
usw.
Da die Längen der Listen unterscheiden Ich habe auf beiden Listen eine Aufzählung (Liste) Schleife fehlgeschlagen verwenden. Ich habe es versucht:
location_experiment_sorted = []
for i, item in enumerate(unique_experiment):
location = item[0]
exp = item[1]
if location not in location_experiment_sorted:
location_experiment_sorted.append([location, exp])
else:
location_experiment_sorted[i].append(exp)
Unter anderem. Ich habe auch versucht, ein Wörterbuch zu verwenden, das sich auf eine Liste mehrerer Experimente bezieht. Kann mir jemand in die richtige Richtung zeigen?
Ich glaube, Sie können Ihre 'location_exp' Liste einfach sortieren und dann mit [' itertools.groupby'] (https://docs.python.org/2/library/itertools.html#itertools.groupby). Nicht sicher, ob ich die Situation richtig verstanden habe. –