2012-07-13 2 views
4

를 사용하여 두 개의 문자열 사이에 하나의 공간을 조정 : ab를 추가 할 때나는 두 개의 문자열이 파이썬

>>> a = "abcd" 
>>> b = "xyz" 
>>> c = a + b 
>>> c 
abcdxyz 

가 어떻게 대신 결과로 abcd xyz를 얻을 수 있습니까? 당신은 .join() 등의 기능을 사용할 수 있습니다

a = "abcd" 
b = "xyz" 
c = a + " " + b # note the extra space concatenated with the other two 
print c 

이 당신에게

abcd xyz 

을 줄 것이다,하지만 너무 짧은 뭔가, 그 보일 것입니다 :

답변

11

은 단순히 두 문자열 사이에 공백을 추가 거의 반 직관적 인 (그리고 IMO "과잉"). 즉, 먼저 두 문자열로 목록을 만든 다음 해당 목록이있는 함수를 호출하고 print 문에서 그 함수의 반환을 사용합니다. 필요한 공간을 2 개의 문자열로 연결할 수 있습니다. 의미 상으로 더 명확하게 보입니다.

기준 : "단순함이 복잡한 것보다 낫습니다." (Zen of Python "import this")

+2

내가 동의합니다. 미리 목록에 넣어야하는 두 개의 요소에'.join()'을 사용하면 과장된 것처럼 보입니다. 그러나 문자열의 긴 목록에 대해서는 확실히 이동하는 방법입니다. –

+0

@TimPietzcker * 절대적으로 *. 나는'join()'자신을 아주 좋아한다.하지만이 문제는 심각하게 필요하지 않다. 이것들이 여러개의 문자열이라면'join()'의 길을 가야한다. – Levon

+1

@Downvoter .. 왜 downvote? downvote w/o 설명 도움이되지 않습니다 * 누구 * OP, 그래서 또는 나 그리고 그러므로 * 건설적이지 않습니다 *. 문제의 기본 성격을 감안할 때, 솔루션은 OP의 요구를 충족시키기 위해 의도적으로 같은 레벨에서 제공됩니다. – Levon

8

조인을 사용하여 문자열을 선택한 구분 기호와 함께 연결할 수 있습니다.

a = "abcd" 
b = "xyz" 
c = " ".join([a, b]) 
3

파이썬 문자열 모듈의 일부 (후자는 기술적으로 간단하지만 강력한 클래스 임) string formatting operationstemplate system을 지원한다. 연산자가 작동하지만 문자열 형식이 부족하면 코드의 가독성이 크게 달라질 수 있습니다. 문자열 형식에 대한 기본 예 :

인쇄 둘 사이에 공간이 필요한 경우
c = '%s %s' % (a, b) 
+0

+1, 이것은 내가 할 수있는 방법이다. – georg

+0

+1 영리한 아이디어. -1. 새롭고 개선 된'.format()'메소드 대신 deprecated 문자열 포맷팅 연산을 사용하면 -1이다. –

-1

, 당신은이를 사용할 수 있습니다

a = "hi" 
b = "how r u" 

print a,b 
관련 문제