我正在使用python2.7。我有一個包含染色體位置和實驗ID的文件。我有存儲在時刻兩個列表這樣的信息:創建一個與列表關聯的字典並通過一個循環更新它
unique_locations - containing a single value for each location
location_exp - containing lists of [location, experiment]
我沒有用字典的原因是,有多個實驗中發現多個地點 - 即這是一個多對多的關係。
我想知道每個位置的實驗數量。即得到這樣的列表:
[
[location1, [experiment1, experiment2, experiment3]],
[location2, [experiment2, experiment3, experiment4]]
]
等
由於列表的長度是不同的我一直在使用上對於列的枚舉(列表)循環失敗。我曾嘗試:
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)
其中包括其他事情。我也嘗試使用與多個實驗列表相關的字典。任何人都可以將我指向正確的方向嗎?
我想你可以簡單地對你的'location_exp'列表進行排序,然後使用['itertools.groupby'](https://docs.python.org/2/library/itertools.html#itertools.groupby)。不知道我是否正確理解了這種情況。 –