파이썬에서 목록을 공백이있는 문자열로 어떻게 변환합니까?


94

파이썬에서 목록을 공백으로 구분 된 문자열로 어떻게 변환 할 수 있습니까?

예를 들어 다음 목록을 변환하고 싶습니다.

my_list = [how,are,you]

문자열로 "how are you"

공간이 중요합니다. 나는 howareyou지금까지의 내 시도와 같이 얻고 싶지 않습니다.

"".join(my_list)

18
Protip : list변수 이름으로 사용하지 마십시오 .
Tim Pietzcker 2012 년

답변:


197
" ".join(my_list)

빈 문자열이 아닌 공백으로 조인해야합니다 ...


7
이런 코드가 제가 파이썬을 좋아하는 이유입니다. 아주 간단합니다.
Josh

이 형식의 문자열이 있으면 list = ['how ', 'are ', 'you '] 어떻게 목록으로 변환 할 수 있습니까?
Muhammad Taqi

1
@MuhammadTaqi 후 그냥 ... 가입 be4 요소를 제거" ".join([i.strip() for i in my_list)
잭 ZHANG에게

17

" ".join(my_list)문자열 과 비교할 때 거의 쓸모가 없지만 대체로 이것을 던질 것 입니다. 문자열이 아닌 경우 (예 : int 배열)이 방법이 더 좋을 수 있습니다.

" ".join(str(item) for item in my_list)

7

Non String의 경우 list다음과 같이 할 수도 있습니다.

" ".join(map(str, my_list))

2

따라서 원하는 출력을 얻으려면 먼저 함수가 어떻게 작동하는지 알아야합니다.

join()python 문서에 설명 된 메서드 의 구문 은 다음과 같습니다.

string_name.join(iterable)

주의 할 사항 :

  • string의 요소와 연결된를 반환합니다 iterable. 요소 사이의 구분자는 string_name.
  • 의 문자열이 아닌 값 iterableTypeError

이제 공백 을 추가 하려면 string_name을 a " "또는 ' '둘 다로 교체하고 iterable연결하려는을 배치하면 됩니다.

따라서 우리의 함수는 다음과 같습니다.

' '.join(my_list)

그러나 white spaces요소 사이에 특정 수를 추가 하려면 iterable?

다음을 추가해야합니다.

str(number*" ").join(iterable)

여기서는 number사용자 입력이됩니다.

예를 들어 number=4.

그리고, 출력의 str(4*" ").join(my_list)how are you4 공백이있는 모든 단어들 사이에 있도록.



-9

다음과 같이 목록 자체의 항목에 공백을 추가하지 않는 이유는 무엇입니까?
list = ["how ", "are ", "you "]


답변 은 의견의 형태로 더 적절하게 보이도록 작성했습니다. 이 답변을 확장하여 제안한 내용이 작동 하는 이유 를 설명하는 것이 더 유익 할 것 입니다.
Andon M. Coleman

1
목록에 액세스 할 수없는 경우에는 작동하지 않습니다 (예 :로 생성 된 경우 input(a).split(b))
TheSola10

그것은 우리에게 공간의 손실이 발생할 수 있기 때문에 우리는 내부 문자열을 변경하지 마십시오
디팍 야다 브
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.