2012-03-07 3 views
1

내 결과 데이터는 각 그들에 목록이 튜플의 목록에있는 모든 중첩 따옴표를 제거하고 작성하는 가장 좋은 방법은 무엇쓰기 목록

[(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ['I', 'J', 'K', 'L', 'M', 'N']), 
... 
(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ['I', 'J', 'K', 'L', 'M', 'N'])] 

을 A : N은 탭 구분 파일입니까?

답변

4

따옴표는 문자열의 일부가 아니며 문자열을 나타냅니다. 당신은 그들을 제거 할 수 없을 것입니다.

csv module이 TAKS은 매우 간단합니다 :

import csv, itertools 
with open('file.csv', 'wb') as f: 
    writer = csv.writer(f, delimiter="\t") 
    writer.writerows(list(itertools.chain(*t)) for t in results) 

각 행은 튜플에 해당하며 행이 두 목록의 문자를 포함하는 경우이 파일에 결과는 탭으로 구분.

+0

은 흠가 실행하지만 난 다른 뭔가를 놓친 거지 .. 빈 파일을 출력? – user1249464

+0

코드를 업데이트했습니다. 문제는 파일이'csv.writer'에 의해 아직 닫히지 않았고 목록이 제대로 생성되지 않은 것처럼 보였습니다 ... 지금 작동해야합니다. –

+0

완벽하게 작동합니다. 감사합니다. – user1249464

-1

재귀는이 문제를 해결하는 자연스러운 방법입니다.

하자 목표 목록이 될 [([A, B ..]) ([A, B])]

def dump(target): 
    for obj in target: 
    if isinstance(obj,tuple) or isinstance(obj, list): 
     dump(obj) 
    else: 
     print(obj), 

dump(target) 
print()