在python中打印带有整数和字符串的格式化字符串,我通常会这样做:
print '%d %d - %s' %(x,y, mystr)
打印出列表有什么相似之处吗?我有:
L= [1,0,0]
name = 'V'
我希望输出为:
v(1,0,0)
列表对象是否有类似于%d的内容?
答案 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