列表在python中以格式化字符串打印

时间:2011-10-13 21:51:42

标签: python

在python中打印带有整数和字符串的格式化字符串,我通常会这样做:

print '%d %d - %s' %(x,y, mystr)

打印出列表有什么相似之处吗?我有:

L= [1,0,0]
name = 'V'

我希望输出为:

v(1,0,0)

列表对象是否有类似于%d的内容?

2 个答案:

答案 0 :(得分:7)

如果要完全控制列表的呈现方式,则必须单独格式化。

在您的情况下,代码将类似于:

items = [1,0,0]
name = 'V'
formatted = '%s(%s)' % (
    name,
    ','.join(str(it) for it in items)
)

答案 1 :(得分:1)

您始终可以继承list,然后覆盖repr函数以您想要的任何格式打印list,如下所示:

In [1]: class MyList(list):
            def repr(self):
                return ", ".join(["%s" % s for s in self])

In [2]: x = MyList([1, 2, 3, 4, 5])

In [3]: x
Out[3]: [1, 2, 3, 4, 5]

In [4]: print x
[1, 2, 3, 4, 5]

In [5]: print "abc__ %s __def" % x
abc__ [1, 2, 3, 4, 5] __def

In [6]: y = MyList()

In [7]: y.append(55)

In [8]: y.append("abc")

In [9]: y
Out[9]: [55, 'abc']

In [10]: print "ZZZ -- %s -- ZZZ" % y
ZZZ -- [55, 'abc'] -- ZZZ