使用string.format进行整数列表连接

时间:2014-04-16 06:51:49

标签: python string list

作为Joining a list that has Integer values with Python,可以通过转换str然后加入它们来加入整数列表。

顺便说一句,我想先得到foo bar 10 0 1 2 3 4 5 6 7 8 9多个数据(foobar),然后列出10elements列表的大小

我使用string.format作为

x = range(10)
out = '{} {} {} {}'.format('foo', 'bar', len(x), x)

out将为foo bar 10 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

要解决问题,我可以将代码重写为

out = '{} {} {} '.format('foo', 'bar', len(x)) + ' '.join([str(i) for i in x])

看起来不一致(混合string.formatjoin)。我试过了

slot = ' {}' * len(x)
out = ('{} {} {}' + slot).format('foo', 'bar', len(x), *x)

我认为它仍然没有吸引力。 是否有办法仅使用string.format加入整数列表?

3 个答案:

答案 0 :(得分:4)

我可能会忽略您的问题,但您可以简单地扩展您链接的方法,如下所示:

>>> x = range(10)
>>> out = " ".join(map(str, ["foo", "bar", len(x)] + x))
>>> out
'foo bar 10 0 1 2 3 4 5 6 7 8 9'

答案 1 :(得分:4)

既然你偏爱吸引力,只想使用一行而只使用format,你可以做到

'{} {} {}{}'.format('foo', 'bar', len(x), ' {}' * len(x)).format(*x)
# foo bar 10 0 1 2 3 4 5 6 7 8 9

答案 2 :(得分:2)

您只需使用打印功能:

>>> from __future__ import print_function  #Required for Python 2
>>> print('foo', 'bar', len(x), *x)
foo bar 10 0 1 2 3 4 5 6 7 8 9