У меня есть набор из 50 текстовых файлов, все из которых настроены на первую строку заголовка, первый столбец - имена генов, а остальные столбцы - значения для каждого гена. У меня также есть официальный текстовый файл со списком генов. Я хочу использовать официальный список имен генов для создания словаря, затем перебрать файлы, определить, совпадает ли имя гена для каждой строки с именем гена в словаре, и, если это так, добавить значение словаря с дополнительными значениями изэкспериментальный файл.
Итак, экспериментальный файл выглядит следующим образом:
GENE Exp1 Exp2
geneA 12 34
geneB 42 10
geneC 42 10
Официальный список генов выглядит так:
GENE
geneA
geneC
Я пытался использовать defaultdictи следующий код (только для одного экспериментального файла, но позже он может повторяться и более):
combo = {}
with open('official_gene_list.txt', 'r') as f:
f.readline()
for line in f:
name = line.split('\n')[0]
combo[name]={}
with open('expeirmenta1_file.txt', 'r') as g:
for each in g:
name2 = each.split('\t')[0]
data = each.rstrip('\n').split('\t')[1:]
for name2 in combo:
combo[name2].append(data)
Но всякий раз, когда я это делаю, словарь создается нормально, но я получаю следующую ошибку:
AttributeError: 'dict' object has no attribute 'append'
Я также пытался использовать defaultdict ():
from collections import defaultdict
combo = defaultdict(list)
with open('gene_orf_updated2.txt', 'r') as f:
f.readline()
for line in f:
name = line.split('\n')[0]
combo[name]={}
with open('GSE139_meanCenter_results.txt', 'r') as g:
for each in g:
name2 = each.split('\t')[0]
data = each.rstrip('\n').split('\t')[1:]
for name2 in combo:
combo[name2].append(data)
И я получаю ту же ошибку, что у объекта 'dict' нет атрибута 'append'.
Я уже делал словари, но никогда не пытался добавлять новые значения к существующим ключам, как это. Это возможно? Любая помощь или совет будет принята с благодарностью.