从元组中删除空格分隔符

时间:2017-11-09 19:00:20

标签: python python-3.x tuples

我想知道是否有办法从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'下面的任何代码的情况下完成初始问题(从元组中删除空格)?

4 个答案:

答案 0 :(得分:1)

这是Python print声明的默认输出。

您可以自定义字符串格式以显示您想要的内容:

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

答案 1 :(得分:0)

您可以使用以下示例:

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

有关更多参考资料:https://pyformat.info/

答案 2 :(得分:0)

取决于具有两个条目的元组可能不是最好的主意。类似的东西:

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

会更安全。

答案 3 :(得分: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)

发布我自己的解决方案以防其他人将来遇到此问题。

相关问题