Я пытаюсь создать словарь, состоящий из нескольких словарей. Я создаю это из текстового файла:Создание нескольких вложенных словарей из файла .txt
chrY 6 8 +
chrY 3 5 +
chrX 10 11 +
chrX 13 15 -
Мой желаемый результат будет:
{'chrY': {'+' : {'start': [3 , 6], 'end': [5, 8]}}, 'chrX': {'+' : {'start': [10], 'end': [11]} , '-': {'start' : [13], 'end' : [15]}}}
Мой код до сих пор состоит из:
import sys
first_dict = {}
intron_dict = {}
def main():
with open(sys.argv[1], 'r') as intron:
for line in intron.readlines():
line = line.split()
chromosome = line[0]
start = line[1]
end = line[2]
strand = line[3]
first_dict = {chromosome : (strand, start, end)}
for k, v in first_dict.iteritems():
intron_dict.setdefault(k, []).append(v)
print (intron_dict)
if __name__=='__main__':
main()
Этот код позволяет мне сортировать chrY и chrX, не перезаписывая значения. У меня возникают проблемы с объединением ключей «+» и «-» и получением данных в желаемый формат. До сих пор мой выход выглядит следующим образом:
{'chrY': [('+', '6', '8'), ('+', '3', '5')], 'chrX': [('+', '10', '11'), ('-', '13', '15')]}