2016-12-23 3 views
-4

텍스트 처리 작업을하고 유니 코드 문자와 단어가있는 배열이 있습니다. 알고리즘을 학습하는 기계로 데이터를 처리 할 수 ​​있도록 분할하려고합니다. 예를 들어파이썬 3.5 유니 코드 기호와 별도의 단어

는 :

이 내 배열 :

arr = ['mpla mpalampla', 'mpala' , 'mpalampala', ''] 

난이 원하는 :

resultarr = ['mpla', 'mpala', '', 'mpla', 'mpala', '', '', 'mpalampala', '',''] 

나는 복잡한 질문, 자세한 내용은 문의 주시기 바랍니다 알고를 .

+0

사용'[re.findall에서 x의 편곡에 항목에 대한 X (R "을 + | ([A-ZA-Z] + | \ S) ", item) if x]' –

+0

다임러가 작동합니다 – dapo

+0

예, 위의 문자열에 해당합니다. 그러나 당신이하고있는 일을 알지 못한다면 다른 유형의 입력으로 깨질 수 있기 때문에 답변을 게시 할 수 없습니다. 이 작업에 대한 사양 및 해결 방법을 업데이트하십시오. 그렇지 않으면 질문이 명확하지 않아야합니다. –

답변

1

할 수 있습니다 쉽게 정규식 사용 할 : \ s에

import re 

arr = ['mpla mpalampla', 'mpala' , 'mpalampala', ''] 

temp_str = " ".join(arr) 

resultarr = re.split(r'([^a-z]|\s)', temp_str) 

resultarr = list(filter(
    lambda item: item not in ('', ' '), 
    resultarr 
)) 

print(resultarr) # ['mpla', 'mpala', '', 'mpla', 'mpala', '', '', 'mpalampala', '',''] 
+0

Thx 젠체하는 그 작업 ...... !!!! Fomalhaut 명예 – dapo

+0

당신은 최고입니다 – dapo

+0

당신을 진심으로 환영합니다. – Fomalhaut