Python:使用.format方法使用列表项填充字符串

问题描述 投票:0回答:3

这似乎是应该已经有答案的问题,但我没有找到答案。如果有人知道已经回答了这个问题的其他问题,请通过链接发表评论。

我的问题是,有没有一种方法可以使用.format方法将列表中的项目输入到字符串中?使用特定的索引进行格式化有点痛苦,我想知道是否可以使用“ for i in list”技术。

而不是这样:

 x = [1, 2, 3, 4, 5]

print 'The first 4 items in my list are {}, {}, {}, {}'.format([x[0], x[1], x[2], x[3])

我可以做类似的事情:

x = [1, 2, 3, 4, 5]

print 'The first 4 items in my list are {}, {}, {}, {}'.format([i for i in x if i < 5])

如果我按照这些方法尝试,它将无法正常工作,并且我将收到“元组索引超出范围”错误,因为它将其视为仅一项而不是4个单独的项。我只是想知道这是否可能。

python string string-formatting
3个回答
4
投票

您可以简单地打开列表的包装:

>>> x = [1, 2, 3, 4, 5]
>>> 'The first 4 items in my list are {}, {}, {}, {}'.format(*x)
'The first 4 items in my list are 1, 2, 3, 4'
>>>

任何剩余的参数将被忽略。


0
投票

您可以在列表理解中使用string.join()

x = [1, 2, 3, 4, 5]

print 'The first 4 items in my list are {}'.format(', '.join([str(i) for i in x if i < 4]))
# The first 4 items in my list are 1, 2, 3

注意:这仅打印个元素,因为x中只有3个元素与< 4]相匹配

如果您的列表理解只是输出4个元素的尝试,否则您对使用列表理解并不真正感兴趣,否则iCodez的解决方案会更好,更高效。


0
投票
rev_arr = [4,3,2,1]
str_arr.format(', '.join([str(element) for element in rev_arr]))
© www.soinside.com 2019 - 2024. All rights reserved.