2014-03-30 4 views
13

나는이 목록 나는 그것이단어 목록을 문장 문자열로 바꾸려면 어떻게합니까?

obytay ikeslay ishay artway 

아무도 도와 드릴까요처럼 볼 필요가

[['obytay'], ['ikeslay'], ['ishay'], ['artway']] 

있나요? join을 사용해 보았지만 제대로 작동하지 않습니다.

+4

4 votes and counting. 이미 좋은 질문처럼 보입니다! – devnull

+0

@devnull, 하하하. 나는 당신이 당신의 코멘트를 편집 한 것을 본다. :) – sshashank124

답변

20

당신은 너무 당신이 그것을해야한다고 생각하는 방법을 작동하지 않는 목록의 목록을 가지고있다. 그러나 당신의 시도는 절대적으로 옳았습니다. 다음과 같이하십시오.

' '.join(word[0] for word in word_list) 

여기서 word_list는 위에 표시된 목록입니다.

>>> word_list = [['obytay'], ['ikeslay'], ['ishay'], ['artway']] 
>>> print ' '.join(word[0] for word in word_list) 
obytay ikeslay ishay artway 

Tobey likes his wart

+0

정말 고마워요! 목록으로 어떻게 목록으로 변했는지 이해할 수 없습니다. 코딩에서 빈 목록을 만든 다음 그 단어를 그 안에 추가했습니다. 목록 안에있는 목록은 확실히 나를 위해 복잡한 것을 – user3477556

+0

@ user3477556, 어쩌면 더 좋을 것입니다. 코드의 추가 부분을 수정하여 처음에는이 문제로 끝나지 않고 더 복잡한 문제가 생길 수 있습니다. . 돼지 라틴어? :) – sshashank124

+0

정상적인 단어를 piglatin으로 바꿔주는 다른 함수로 바뀐다. 새로운 piglatin word를 빈리스트에 추가한다. 나는 그것을 다 고쳤고'join' 함수는 정상적으로 작동한다 : D 도움을 많이 주셔서 감사합니다! – user3477556

1

그것은 문자열리스트이다. 그래서, 당신은 우리가 처음 당신은 또한 사용할 수있는이

print " ".join(list(chain.from_iterable(strings))) 
+1

Downvoter,이 답변에 무엇이 잘못되었는지 알려주세요. – thefourtheye

+1

나는 downvoter가 아니었지만 어쩌면 그/그녀는 해결책이 너무 복잡하다고 생각했기 때문에 가능했다. 솔직히, 나는 모른다. :피 – sshashank124

0

처럼이 목록에 반복자를 체인으로 변환하는 경우 그것은 효율적입니다이

from itertools import chain 
print " ".join(chain.from_iterable(strings)) 
# obytay ikeslay ishay artway 

같은 chain.from_iterable으로, 체인 문자열의 목록이 필요 reduce.

l = [['obytay'], ['ikeslay'], ['ishay'], ['artway']] 
print " ".join(reduce(lambda a, b: a + b, l)) 
#'obytay ikeslay ishay artway' 
관련 문제