본문 바로가기
파이썬

파이썬의 목록에서 튜플의 요소 연결

by º기록 2020. 12. 27.
반응형

문자열이있는 튜플 목록이 있습니다. 예를 들면 :

[('this', 'is', 'a', 'foo', 'bar', 'sentences')
('is', 'a', 'foo', 'bar', 'sentences', 'and')
('a', 'foo', 'bar', 'sentences', 'and', 'i')
('foo', 'bar', 'sentences', 'and', 'i', 'want')
('bar', 'sentences', 'and', 'i', 'want', 'to')
('sentences', 'and', 'i', 'want', 'to', 'ngramize')
('and', 'i', 'want', 'to', 'ngramize', 'it')]

이제 튜플의 각 문자열을 연결하여 공백으로 구분 된 문자열 목록을 만들고 싶습니다. 다음 방법을 사용했습니다.

NewData=[]
for grams in sixgrams:
       NewData.append( (''.join([w+' ' for w in grams])).strip())

완벽하게 잘 작동합니다.

그러나 내가 가진 목록에는 백만 개가 넘는 튜플이 있습니다. 그래서 내 질문은이 방법이 충분히 효율적이거나 더 나은 방법이 있다는 것입니다. 감사.

 

해결 방법

 

많은 데이터의 경우 모든 데이터를 목록으로 유지해야 필요한지 고려해야합니다. 한 번에 하나씩 처리하는 경우 결합 된 각 문자열을 생성하지만 메모리를 차지하지 않는 생성기를 만들 수 있습니다.

new_data = (' '.join(w) for w in sixgrams)

생성기에서도 원래 튜플을 얻을 수 있다면 메모리에 sixgrams 목록이있는 것을 피할 수 있습니다.

 

참조 페이지 https://stackoverflow.com/questions/20736917

 

 

반응형

댓글