作为Joining a list that has Integer values with Python,可以通过转换str
然后加入它们来加入整数列表。
顺便说一句,我想先得到foo bar 10 0 1 2 3 4 5 6 7 8 9
多个数据(foo
,bar
),然后列出10
和elements
列表的大小
我使用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.format
和join
)。我试过了
slot = ' {}' * len(x)
out = ('{} {} {}' + slot).format('foo', 'bar', len(x), *x)
我认为它仍然没有吸引力。 是否有办法仅使用string.format
加入整数列表?
答案 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