다음을 수행하는 가장 관용적 인 방법은 무엇입니까?
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