python字符串格式:不使用两个列表的方法?

2024-09-28 19:07:30 发布

您现在位置:Python中文网/ 问答频道 /正文

代码如下:

a = ['foo', 'bar', 'doh', 'rae']

我想要字符串SUM(foo) AS foo, SUM(bar) AS bar, SUM(doh) AS doh, SUM(rae) AS rae。这是有效的:

尝试了一些类似'SUM(%s) AS %s' % ([x for x in a], [x for x in a])这样的聪明方法,但显然行不通,使用两种列表理解方法效率低下。在

有什么提示吗?在


Tags: 方法字符串代码in列表forfooas
2条回答

为什么不使用str.format method?在

", ".join(['SUM({n}) AS {n}'.format(n=x) for x in a])
# Returns SUM(foo) AS foo, SUM(bar) AS bar, SUM(doh) AS doh, SUM(rae) AS rae

如果a是一个大列表,那么您可能需要使用一个生成器,以避免首先在内存中创建整个列表,正如GWW所指出的那样。在

^{pr2}$

你可以使用str.格式函数在一个字符串中两次传递一个参数,如下所示:

s = ', '.join(['SUM({0}) AS {0}'.format(x) for x in a])

通过一个列表理解和一个连接操作,它可以产生所需的输出

^{pr2}$

你好!在

相关问题 更多 >