2017-11-09 14 views
1

Python 3.6のタプルからスペースセパレータを削除する方法があるのだろうかと思っていました。例えば、私が持っていた場合:タプルからスペースセパレータを削除する

t1 = (x,y) 
print(t1) 

出力は

(x, y) 

だろうが、私はそれがインデックスを区切るスペースなし

(x,y) 

になりたいです。これを行う方法はありますか?

編集:これまでの参考にしていただきありがとうございます。私は、次のクラスを検討したい:

次のコードを使用して同じファイル(私はクラスが別々のファイルになりますが、ここで私と一緒に負担する必要があります知っている)で呼び出されて実行される
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': 
    ex1 = Example(0,12) 
    ex2 = Example(5,10) 

    print('ex1 - ex2 =', str(ex1-ex2)) 

以下のコードを変更することなく、最初の問題(タプルからスペースを削除する)をどうすればできますか?if __name__ == 'main'

+3

一般的に言えば、「このビルトインタイプの表示方法を制御するにはどうすればよいですか? "あなたが望むプロパティを持つ文字列を作成し、その代わりに印刷します"。 – Kevin

答えて

0

私自身のコードでもっと遊んだ後、私は自分自身の問題を解決したようです。助けてくれた皆様に感謝します!その解決策は、__sub__メソッドのreturn文でクラスを再度呼び出すのと同じくらい簡単でした。なぜなら、Pythonが自分自身ではなく組み込みの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')) 

を複数の参照用:Pythonのprint文のデフォルトの出力ですhttps://pyformat.info/

1

を。

あなたが欲しいものを表示するために、文字列をカスタム書式を設定することができます

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

彼はPython 3.x – xsami

+0

を使用していることに注意してください。私は最初に気付かなかった。 –

+2

さらに良い: '.format(* t1)'のようにアンパックを使う –

0

2つのエントリを持つタプルによっては、おそらく最高のアイデアではありません。次のようなものがあります。

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

より安全です。

関連する問題