2017-11-09 7 views
1

파이썬 3.6에서 터플로부터 스페이스 세퍼레이터를 제거하는 방법이 있는지 궁금합니다.터플로부터 스페이스 세퍼레이터 제거하기

t1 = (x,y) 
print(t1) 

이 출력은

(x, y) 

것 그러나 나는 인덱스를 분리하는 공백없이

(x,y) 

되고 싶어요 예를 들어, 나는 인 경우가 있습니다. 이것을 할 수있는 방법이 있습니까?

편집 : 지금까지 도움이되는 답변을 주셔서 감사합니다. 그러나 나는 충분히 구체적이지 않다고 생각합니다.

if __name__ == 'main': 
    ex1 = Example(0,12) 
    ex2 = Example(5,10) 

    print('ex1 - ex2 =', str(ex1-ex2)) 
: 다음 전화를 다음 코드로 동일한 파일 (I 클래스는 별도의 파일에있을 그러나 여기 나와 함께 부담해야 알)에서 실행된다

class Example(object): 
    def __str__(self): 
     return '({0},{1})'.format(self.x, self.y) 

    def __sub__(self, other): 
     return self.x - other.x, self.y - other.y 

: 나는 다음과 같은 클래스를 고려할

if __name__ == 'main' 아래의 코드를 변경하지 않고 초기 문제 (튜플에서 공간을 제거하는 방법)를 수행하려면 어떻게해야합니까?

+3

일반적으로 "이 기본 제공 유형이 표시되는 방식을 제어하려면 어떻게해야합니까?" "원하는 속성을 가진 문자열을 만들고 대신 인쇄하십시오." – Kevin

답변

0

내 자신의 코드로 더 많은 게임을 한 후, 나는 내 자신의 문제를 해결 한 것 같습니다. 도와 주신 모든 분들께 감사드립니다! 해결책은 __sub__ 메소드의 return 문에서 클래스를 다시 호출하는 것만큼이나 쉬웠습니다. 파이썬이 내 자신의 메소드 대신 내장 된 str 메소드를 전달했기 때문입니다. 업데이트 된 코드는 다음과 같습니다 :

class Example(object): 
    def __str__(self): 
     return '({0},{1})'.format(self.x, self.y) 

    def __sub__(self, other): 
     return Example(self.x - other.x, self.y - other.y) 

다른 사람이 나중에이 문제가있는 경우를 대비하여 내 솔루션을 게시했습니다.

0

다음과 같은 예를 사용할 수 있습니다

print('%s%s' % ('one', 'two')) 
print('{}{}'.format('one', 'two')) 

을의 참조의 경우 : 파이썬의 print 문에 대한 기본 출력의 https://pyformat.info/

1

합니다.

당신은 당신이 원하는 것을 보여주기 위해 문자열을 사용자 정의 형식을 지정할 수 있습니다 :

print('({0},{1})'.format(t1[0],t1[1])) 
+0

그는 파이썬 3.x – xsami

+0

을 사용하고 있음을 기억하십시오. 나는 처음에는 그것을 알아 차리지 못했다. –

+2

더 나은 방법 :'.format (* t1)'처럼 압축을 풀어서 사용하십시오. –

0

두 개의 항목을 갖는 튜플에 따라하는 것은 아마 좋은 생각이 아니다. 다음과 같음 :

print('({})'.format(','.join(map(str, tup)))) 

더 안전 할 것입니다.