반응형
문자열이있는 튜플 목록이 있습니다. 예를 들면 :
[('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
반응형
'파이썬' 카테고리의 다른 글
파이썬 List of IP addresses/hostnames from local network in Python (0) | 2020.12.27 |
---|---|
파이썬 How to iterate over two dictionaries at once and get a result using values and keys from both (0) | 2020.12.27 |
파이썬 Python PIL-원 그리기 (0) | 2020.12.27 |
파이썬 PyQt5에서 QtGui 가져 오기 실패 (0) | 2020.12.26 |
파이썬 Python, 출력에서 소수점 이하 두 자리까지 모든 부동 소수점 인쇄 (0) | 2020.12.26 |
댓글