Я пытаюсь сделать словарь, где каждый ключ является именем (уникальной последовательности ДНК), а его значение будет списком других имен (которые имеют такой же последовательности ДНК). Например, {'2617': [['5632'], ['7630'], ...}
. Я пытаюсь заполнить этот словарь из файла, который имеет такую структуру:Добавить значения в ключ между экземплярами совпадения строк в Python
1. 11618 [82]
11619
11620
12180
2. 12183 [1]
3. 12918 [2]
12922
Я хочу ключ, чтобы быть вторым пунктом строки, которые начинаются с \d+.
, то значения будут все строки до следующего пример \d+.
. Я не могу понять, как добавить эти значения до следующего экземпляра \d+.
.
Прямо сейчас, я просто список уникальных последовательностей, из:
unique_seqs=[]
for line in in_file:
line=line.strip()
if '[' in line:
line=line.split()
unique_seqs.append(line[1])
я могу сделать этот список в словарные значения, но я не знаю, как сделать петлю, чтобы добавить ключи и значение в то же время из моего файла. Заранее спасибо! Добавлено:
Вот немного из файла:
1. 11618 [82]
11619
11620
12180
ML_S2470
ML_S2472
2. 12183 [1]
12922
3. 12919 [20]
12920
12921
и код, который сделал мой список в последний комментарий ниже:
in_file = open('example.txt', 'r')
for line in in_file:
line=line.strip()
line=line.split('\n')
Чтобы быть ясным, «11618» будет ключом от первой строки, а его значения будут следующими тремя строками? А следующий ключ «11620» будет иметь пустой список значений? – Reti43
11618 будет ключом, и он будет иметь значения '[[11619], [11620], [12180]]'. «11620» не будет ключевым, поэтому у него не будет пустого списка значений. В действительности «11618» будет иметь список из 82 значений, указанных в скобках, следующих за «11618». Я пытаюсь написать код сейчас, чтобы воспользоваться тем фактом, что я «знаю», сколько значений должен иметь ключ. После этого ключ «12183» выше не будет иметь значения. – Jared
Простите, мы имели в виду то же самое, я просто смутил цифры. – Reti43