[string] 파이썬 : None을 빈 문자열로 변환하는 가장 관용적 인 방법은 무엇입니까?

다음을 수행하는 가장 관용적 인 방법은 무엇입니까?

def xstr(s):
    if s is None:
        return ''
    else:
        return s

s = xstr(a) + xstr(b)

업데이트 : str (s)을 사용하는 Tryptich의 제안을 통합하여 문자열 이외의 다른 유형 에서이 루틴을 작동시킵니다. Vinay Sajip의 람다 제안에 크게 감명을 받았지만 코드를 비교적 간단하게 유지하고 싶습니다.

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)



답변

실제로 함수가 str()내장 함수처럼 동작하기를 원 하지만 인수가 None 일 때 빈 문자열을 반환하려면 다음과 같이하십시오.

def xstr(s):
    if s is None:
        return ''
    return str(s)


답변

def xstr(s):
    return '' if s is None else str(s)


답변

아마도 가장 짧은 것은
str(s or '')

None이 False이므로 x가 false이면 “x 또는 y”는 y를 반환합니다. 자세한 설명 은 부울 연산자 를 참조하십시오 . 짧지 만 명시 적이지는 않습니다.


답변

값이 항상 문자열이거나 없음임을 알고있는 경우 :

xstr = lambda s: s or ""

print xstr("a") + xstr("b") # -> 'ab'
print xstr("a") + xstr(None) # -> 'a'
print xstr(None) + xstr("b") # -> 'b'
print xstr(None) + xstr(None) # -> ''


답변

return s or '' 명시된 문제에 대해 잘 작동합니다!


답변

def xstr(s):
   return s or ""


답변

기능적인 방법 (한 줄짜리)

xstr = lambda s: '' if s is None else s