복붙노트

[PYTHON] 여러 문자열이 파이썬에서 비어 있지 않은 경우 조인하기

PYTHON

여러 문자열이 파이썬에서 비어 있지 않은 경우 조인하기

나는 4 개의 줄을 가지고 있으며 그 중 하나는 비어있을 수 있습니다. 나는 그들을 그들 사이에 공백이있는 한 줄로 묶어야한다. 내가 사용하는 경우 :

new_string = string1 + ' ' + string2 + ' ' + string3 + ' ' + string4

결과는 string1이 비어 있으면 새 문자열의 시작 부분에 공백이 생깁니다. 또한 string2와 string3이 비어 있으면 세 개의 공백이 있습니다.

필요하지 않으면 빈 공간없이 쉽게 가입 할 수 있습니까?

해결법

  1. ==============================

    1.

    >>> strings = ['foo','','bar','moo']
    >>> ' '.join(filter(None, strings))
    'foo bar moo'
    

    filter () 호출에서 None을 사용하면 모든 거짓 요소가 제거됩니다.

  2. ==============================

    2.문자열에 선행 / 후행 공백이 없다는 것을 알고 있다면 :

    문자열에 선행 / 후행 공백이 없다는 것을 알고 있다면 :

    >>> strings = ['foo','','bar','moo']
    >>> ' '.join(x for x in strings if x)
    'foo bar moo'
    

    그렇지 않으면:

    >>> strings = ['foo ','',' bar', ' ', 'moo']
    >>> ' '.join(x.strip() for x in strings if x.strip())
    'foo bar moo'
    

    그리고 문자열 앞에 공백 문자가 없거나 공백 문자가있는 경우 여전히 더 열심히 작업해야 할 수도 있습니다. 실제로 가지고있는 것이 무엇인지 명확히하십시오.

  3. ==============================

    3.

    strings = ['foo','','bar','moo']
    ' '.join([x for x in strings if x is not ''])
    'foo bar moo'
    
  4. from https://stackoverflow.com/questions/8626694/joining-multiple-strings-if-they-are-not-empty-in-python by cc-by-sa and MIT license