2013-02-20 3 views
4

Я пытаюсь сделать таблицу из словаря Python: словарь генерируется так:Создание таблицы из словаря в Python

for line in input_file: 
    key = line.split()[0] 
    value_1 = line.split()[1] 
    value_2 = line.split()[2] 
dic = {} 
if not key in dic: 
    dic[key] = value_1, value_2 
else: 
    dic[key] = dic[key], value_1, value_2 

Я хочу, чтобы сделать таблицу в следующем формате:

«/ т» значение_1 «\ т» значение_1 ключ «\ т» значение_2 «\ т» значение_2 ключ «\ т» значение_2 «\ т» значение_2

Вот мой фактический словарь:

COL1A1_31 (((('RD013939-Fetal', '1392.85'), 'RD013938-Fetal', '2306.23'), 'RD013937-Fetal', '2825.40'), 'RD013936-Fetal', '3246.35') 
COL1A1_32 (((('RD013939-Fetal', '5217.01'), 'RD013938-Fetal', '3914.62'), 'RD013937-Fetal', '5879.18'), 'RD013936-Fetal', '5843.70') 
COL1A1_33 (((('RD013939-Fetal', '2937.83'), 'RD013938-Fetal', '2351.07'), 'RD013937-Fetal', '3439.43'), 'RD013936-Fetal', '4121.72') 

Любые идеи?

Извините за запутанный вопрос и мой плохой код ... Я очень новичок в python.

Позвольте представить дополнительную информацию. У меня есть один текст для каждого из нескольких образцов. Тексты файлов, которые все выглядят следующим образом:

Цель Chr Начало Конец Mean_Cov Shallow_Count Shallow_Bases COL2A1_38 chr12 48374677 48374771 175,6 0 ни COL1A1_30 chr17 48269320 48269405 512,76 0 ни COL1A1_36 chr17 48267341 48267489 548,89 0 ни CRTAP_7 CHR3 33183866 33184060 571,77 0 нет

Существует имя гена (цель), а затем некоторые метаданные. Мне нужно создать сводку этих текстовых файлов, выглядит следующим образом:

Target Mean_Cov_sample_1 Mean_Cov_sample_2 COL2A1_38 175,6 some_value_from_sample_2 COL1A1_30 512,76 some_value_from_sample_2

Превращает ли смысл?

+4

Это не словарь ... –

+0

Вы уверены, что Бесполезный» ((«RD013937-Fetal», «2825.40»), ((«RD013936-Fetal», «3246,35»), («RD013939-Fetal», «1392,85»), ((RD013938-Fetal, 2306,23 '),))))) '? По крайней мере, это будет представление Python a-list, построенное на представлении Python связанного (consed) списка. Все еще ужасно глупое дело в Python, но, по крайней мере, я пойму, для чего вы собираетесь; в Lisp и других языках, a-lists - это разумный способ хранения небольших словарей. – abarnert

ответ

2

Это трудно понять, что ваш вход ДИКТ на самом деле выглядит, но вид, который и затем модифицируем пример ниже, если это необходимо:

>>> d = {'key{}'.format(n): 'value{}'.format(n) for n in xrange(3)} 
>>> table = '\t'.join(['{}\t{}'.format(d.get(k), k) for k in sorted(d)]) 
>>> print table 
value0 key0 value1 key1 value2 key2 
+0

Спасибо за помощь. Я думаю, что мой вопрос был так плохо сформулирован, что никто не мог понять, о чем я действительно спрашивал. Надеюсь, мои правки помогут и спасибо вашим пациентам с новичком Python, как я! – user2093357

Смежные вопросы