2014-11-07 2 views
0

Я ищу, чтобы моя пятая колонка сообщалась без дублирования. Поэтому я использовал OrderedDict в следующем коде:Проблема с форматированием с OrderedDict

from collections import OrderedDict 
with open(notmatch) as infile, open (two, 'w') as outfile: 
    reader = csv.reader(infile, delimiter='\t') 
    writer = csv.writer(outfile, delimiter='\t') 
    for gg, poss, codee, ref, alt, *rest in reader: 
     gg = int (gg) 
     poss = int(poss) 
     cls = ref + alt 
     clss = list(OrderedDict.fromkeys(cls)) 
     writer.writerow([gg, poss, codee, d[gg][poss-1], clss] + rest) 

Это дает мне выход для 5-я колонка «CLSS» в следующем:.

['A','B','C'] 
['G','A','T'] 
['G','A'] 
['T'] 

Выхода я хотел это:

A,B,C 
G,A,T 
G,A 
T 

Какое изменение следует сделать для вывода выше (без скобок и апострофов)? Пожалуйста, помогите мне!

+1

Добавить 'clss' в первый список вместо того, чтобы хранить его внутри него: '[gg, poss, codee, d [gg] [poss-1]] + clss + rest' –

+0

В итоге я использовал функцию соединения. Спасибо за помощь! – user3546860

ответ

1

Я надеюсь, что это помогает:

for l in [['A','B','C'],['G','A','T'],['G','A'],['T']]: 
    print ",".join(l) 

Выходы:

A,B,C                           

G,A,T                           

G,A                            

T 

Я считаю, что в вашем коде, который будет выглядеть следующим образом:

for l in [[gg, poss, codee, d[gg][poss-1], clss] + rest]: 
    writer.writerow(",".join(l)) 
Смежные вопросы